Ios 数组不附加图像
我试图将图像附加到二维数组中。我现在就是这样做的:Ios 数组不附加图像,ios,arrays,swift,Ios,Arrays,Swift,我试图将图像附加到二维数组中。我现在就是这样做的: 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("p
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: "[]"`
var imgArr1:[UIImage]=[]
var imgArr2:[UIImage]=[]
var allArrays=[imgArr1,imgArr2]
对于0中的数组..
我们可以假设循环和自定义函数正在工作。(请注意我在代码中的注释:图像名称已正确打印出来。)
我已经尝试了其他方法将新图像附加到数组中,比如insert at index
和使用+=
有什么想法吗?提前谢谢
for var array in allArrays
创建数组的可变副本。附加到它不会改变原始数组,因为数组是值类型。您必须直接将图像添加到imgArr1
(或imgArr2
,或两者)才能使其工作
编辑:作为如何执行此操作的示例,您可以循环遍历外部数组的索引,并使用下标修改内部数组:
var all: [[Int]] = [[], [], []]
for arrayIndex in 0 ..< all.count {
for number in 0 ..< 10 {
all[arrayIndex].append(number)
}
}
print(all.first!.count) // 10
var all:[[Int]]=[]、[]、[]、[]
对于0..
创建数组的可变副本。附加到它不会改变原始数组,因为数组是值类型。您必须直接将图像添加到imgArr1
(或imgArr2
,或两者)才能使其工作
编辑:作为如何执行此操作的示例,您可以循环遍历外部数组的索引,并使用下标修改内部数组:
var all: [[Int]] = [[], [], []]
for arrayIndex in 0 ..< all.count {
for number in 0 ..< 10 {
all[arrayIndex].append(number)
}
}
print(all.first!.count) // 10
var all:[[Int]]=[]、[]、[]、[]
对于0..
我猜UIImage(名为:img)
不起作用。请改用imageWithContentsOfFile:
,因为它是一个路径,而不是用作参数的图像名称。我认为这可能也是问题所在,但当我执行print(UIImage(name:img))
时,它会打印图像的属性(至少一些数字和大小)。我也尝试过使用和不使用文件扩展名。这里的问题是swift数组是值类型,它总是被复制。如果您检查allarray
它将包含图像,但imgArr1是空的。那么我该怎么办?对于0中的数组。
给出错误?我猜UIImage(名为:img)
不起作用。请改用imageWithContentsOfFile:
,因为它是一个路径,而不是用作参数的图像名称。我认为这可能也是问题所在,但当我执行print(UIImage(name:img))
时,它会打印图像的属性(至少一些数字和大小)。我也尝试过使用和不使用文件扩展名。这里的问题是swift数组是值类型,它总是被复制。如果您检查allarray
它将包含图像,但imgArr1是空的。那么我该怎么办?对于0中的数组。
给出错误?对,但当我删除var
时它会抱怨。那我怎么把副本的内容分配给原件呢?你得直接把它们添加到原件上。来吧。一定有办法做到的。我有13个数组,我不能为每个数组创建for循环!我尝试对0..循环,而不是对Allarray
中的var数组使用,然后将图像添加到Allarray[array]
。不成功:(你的意思是0中数组的。
?应该可以。你是如何附加项目的?哦,是的。像这样:allArrays[array]。append(UIImage(名称:img)!)
。当我打印allarray
中的数组时,它们仍然是空的。是的,但是当我删除var
时它会抱怨。那么我该如何获取副本的内容并将其分配给原件?你必须直接将它们添加到原件中。来吧。一定有办法做到这一点。我有13个数组,我做不到每个都有一个for循环!我尝试使用在0中对数组进行循环。
而不是在allarray
中对var数组进行循环,然后将图像添加到allarray[array]
。没有成功:(你是说用于0中的数组。
?应该可以。你是如何附加项目的?哦,是的。像这样:allarray[array]。append(UIImage(name:img)!
)。当我打印allarray
中的数组时,它们仍然是空的。