Swift:UIImage - 找不到接受提供的参数的'init'的重载

use*_*173 0 uiimage swift ios8

下面是我用来构建图像数组的代码

var _displayImage : Array<UIImage>!

required init(coder aDecoder: NSCoder) {
    self._displayImage = []
}

func buildImageSet() {
    self._displayImage = [UIImage(named: "image1"), UIImage(named: "image2"), UIImage(named: "image3"), UIImage(named: "image4"), UIImage(named: "image5")]
}
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:找不到接受提供的参数的'init'的重载

在此输入图像描述

我究竟做错了什么?

Log*_*gan 5

问题是你声明你的数组是这样的:

var _displayImage : Array<UIImage>!
Run Code Online (Sandbox Code Playgroud)

所以它期待UIImage对象.问题是UIImage(named:String)返回一个UIImage?可选项.快速修复是切换这个:

func buildImageSet() {
    self._displayImage = [UIImage(named: "image1"), UIImage(named: "image2"), UIImage(named: "image3"), UIImage(named: "image4"), UIImage(named: "image5")]
}
Run Code Online (Sandbox Code Playgroud)

对此:

func buildImageSet() {
    self._displayImage = [UIImage(named: "image1")!, UIImage(named: "image2")!, UIImage(named: "image3")!, UIImage(named: "image4")!, UIImage(named: "image5")!]
}
Run Code Online (Sandbox Code Playgroud)

虽然这没有考虑到任何这些图像的可能性nil.如果任何图像无法正确加载,您的应用程序将崩溃.如果你确定它们都存在并且将永远存在,这应该没问题.:)