无法找到接受Swift中提供的参数的“init”的重载

时间:2014-10-18 16:34:04

标签: ios objective-c iphone xcode swift

我试图找出如何在Swift中翻译它并且我也遇到了这个错误:"找不到接受提供的参数的“init”的重载"。任何建议表示赞赏。感谢。

var pageImages:[UIImage] = [UIImage]()
pageImages = [UIImage(named: "example.png"), UIImage(named: "example2.png")]

3 个答案:

答案 0 :(得分:14)

确认哑光说的是什么:

在xCode 6.0中,这确实有效:

images = [UIImage(named: "steps_normal"), UIImage(named: "steps_big")]

但是在xCode6.1中,值应该被解包:

images = [UIImage(named: "steps_normal")!, UIImage(named: "steps_big")!]

答案 1 :(得分:3)

打开这些选项。 UIImage与UIImage?不同,这是named:初始化程序返回的内容。因此:

var pageImages = [UIImage(named: "example.png")!, UIImage(named: "example2.png")!]

(当然,除非您实际上想要一组可选的UIImages。)

答案 2 :(得分:2)

UIImage(named:)在Xcode 6.1中更改为可用的初始化程序,这意味着如果您列出的任何图片遗失,则会返回nil你的捆绑。要安全地加载图像,请尝试这样的事情:

var pageImages = [UIImage]()
for name in ["example.png", "example2.png"] {
    if let image = UIImage(named: name) {
        pageImages.append(image)
    }
}