我想要做的是循环一个图像数组(parentArray),根据它是什么样的图像将图像添加到5个不同的数组,当我添加图像时,我想从parentArray中删除该图像。香港专业教育学院尝试过此但我得到一个线程错任何想法都会有帮助。提前致谢。
代码:
var index = parentArray.count
for i in parentArray {
if i.Type == Kind.S && i.cState == Color.blue {
parentArray.removeAtIndex(index)
childArray1.append(i)
}
答案 0 :(得分:0)
索引从零开始,因此parentArray.count将访问超出范围的内存。
第二个错误是,一旦从parentArray中删除了一个元素(假设您正在访问最后一个索引),它的总大小就会减少。但是,您尝试删除的下一个元素是相同的数字,这会导致另一个数组索引问题。祝你好运。
答案 1 :(得分:0)
您的错误是因为您尝试从索引parentArray.count
中删除对象,该对象将始终超出数组索引的范围。您也永远不会更改index
的值。因此,每次满足if语句时,它都会尝试从索引parentArray.count
中删除。
var index = 0
for i in parentArray {
if i.Type == Kind.S && i.cState == Color.blue {
parentArray.removeAtIndex(index)
childArray1.append(i)
}
else {
i++
}
}