我已经创建了一个可选的UIImage
数组,如下所示
var images: [UIImage]?
然后我有一个函数接收UIImage
数组作为参数:
func process(_ images: [UIImage] {
images.forEach {
self.images?.append($0)
}
print("images nil?:", self.images == nil)
}
不知何故,此函数打印出我的self.images
为零,即使在向其附加对象之后也是如此;但如果我将forEach
迭代改为简单:
self.images = images
现在还没有意识到全局变量是零。
为什么会这样?
答案 0 :(得分:1)
你需要初始化一个数组。
var images: [UIImage]? = []
答案 1 :(得分:1)
您从未初始化图像阵列。在追加之前,请执行以下操作:
images = [UIImage]()
答案 2 :(得分:1)
像这样初始化你的数组:
var images = [UIImage]()
立即追加整个数组:
func process(_ images: [UIImage]) {
self.images.append(contentsOf: images)
print(self.images)
}
无需使您的数组可选。因为如果数组中没有图像,那么它将是空的。检查数组计数而不是使其可选。
答案 3 :(得分:0)
只是你需要这样做
var images = [UIImage]()
func process(_ images: [UIImage] {
self.images = images
}