Swift: UIImage -- 找不到接受提供参数的 'init' 的重载
Swift: UIImage -- Could not find an overload for 'init' that accepts the supplied arguments
下面是我用来构建图像数组的代码
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")]
}
我得到一个错误:找不到接受提供的参数的 'init' 的重载
我做错了什么?
问题是你这样声明你的数组:
var _displayImage : Array<UIImage>!
所以它需要 UIImage
个对象。问题是 UIImage(named:String)
returns 一个 UIImage?
可选。快速修复是切换这个:
func buildImageSet() {
self._displayImage = [UIImage(named: "image1"), UIImage(named: "image2"), UIImage(named: "image3"), UIImage(named: "image4"), UIImage(named: "image5")]
}
为此:
func buildImageSet() {
self._displayImage = [UIImage(named: "image1")!, UIImage(named: "image2")!, UIImage(named: "image3")!, UIImage(named: "image4")!, UIImage(named: "image5")!]
}
尽管这并未说明这些图像中的任何一个可能是 nil
的可能性。如果任何图像未正确加载,您的应用程序将崩溃。如果您确定它们都存在并且将永远存在,那么这应该没问题。 :)
下面是我用来构建图像数组的代码
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")]
}
我得到一个错误:找不到接受提供的参数的 'init' 的重载
我做错了什么?
问题是你这样声明你的数组:
var _displayImage : Array<UIImage>!
所以它需要 UIImage
个对象。问题是 UIImage(named:String)
returns 一个 UIImage?
可选。快速修复是切换这个:
func buildImageSet() {
self._displayImage = [UIImage(named: "image1"), UIImage(named: "image2"), UIImage(named: "image3"), UIImage(named: "image4"), UIImage(named: "image5")]
}
为此:
func buildImageSet() {
self._displayImage = [UIImage(named: "image1")!, UIImage(named: "image2")!, UIImage(named: "image3")!, UIImage(named: "image4")!, UIImage(named: "image5")!]
}
尽管这并未说明这些图像中的任何一个可能是 nil
的可能性。如果任何图像未正确加载,您的应用程序将崩溃。如果您确定它们都存在并且将永远存在,那么这应该没问题。 :)