数组不追加图像



我试图将图像附加到二维数组。我现在就是这样做的:

var imgArr1: [UIImage] = []
var imgArr2: [UIImage] = []
var allArrays = [imgArr1, imgArr2]
for array in 0 ..< allArrays.count {
    for i in categories { //list of folder names used below
        for img in fileNames("path/to/my/images/i") { //fileNames() returns all the files' names it finds in the folders
            print(img) //this does print out the correct file names, for instance: "img_1.jpg"
            allArrays[array].append(UIImage(named: img))
        }
    }
}
print(imgArr1) //this prints: "[]"`

我们可以假设循环和自定义函数都在工作。(注意我在代码中的注释:图像名称被正确打印出来。)

我已经尝试了其他方法将新图像附加到数组中,如insert at index和使用+=

任何想法?
提前感谢!

for var array in allArrays

创建数组的可变副本。对它进行追加不会改变原始数组,因为数组是值类型。您必须将图像直接添加到imgArr1(或imgArr2,或两者)才能使其工作。

Edit:作为一个示例,您可以遍历外部数组的索引并使用下标修改内部数组:

var all: [[Int]] = [[], [], []]
for arrayIndex in 0 ..< all.count {
    for number in 0 ..< 10 {
        all[arrayIndex].append(number)
    }
}
print(all.first!.count) // 10

最新更新