夫特3:表达式类型[UIImage的]是没有更多的上下文

问题描述:

暧昧我尝试创建的UIImage对象的新的数组:夫特3:表达式类型[UIImage的]是没有更多的上下文

var images = [UIImage](repeating: nil, count: 10) 
for i in 0..<10 
    { 
     images[i] = ... 
    } 

但我得到这个错误(在第一行): 表达类型[UIImage的]在没有更多上下文的情况下不明确

您试图声明与UIImage对象的数组,然后使用nil实例化。尝试

var images = [UIImage?](repeating: nil, count: 10) 

然后当您访问它们时处理图像为零。

如果你已经知道你将如何来填充的图像,你可以使用地图功能阵列,像这样:

var images = (0..<10).map { (i) -> UIImage in 
    return UIImage() // however you are trying to get the UIImage 
} 
+0

@LeoDabus那也可以!我只是提出了可选的建议,以提高效率。您不想分配即将被丢弃的对象。 –

+0

我认为正确的做法是创建一个空数组'var images = [UIImage]()',然后将新图像添加到它的循环内,或者按照您的建议使用map或forEach'(0..10) .forEach {images.append(UIImage(named:“image \($ 0)”)?? UIImage())}' –