附加图像后,可选的UIImage数组为零

时间:2018-05-29 11:22:51

标签: ios swift foreach

我已经创建了一个可选的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

现在还没有意识到全局变量是零。

为什么会这样?

4 个答案:

答案 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
}