【发布时间】:2016-10-02 10:32:09
【问题描述】:
所以,我有一个类似这样的 for 循环:
for var i = 0; i < results.count ; i += 1 {
if (results[i] < 5) {
results.removeAtIndex(i)
i -= 1
}
}
这曾经有效。但是当我把它改成首选的 Swift 3.0 语法时:
for var i in 0..<results.count {
if (results[i] < 5) {
results.removeAtIndex(i)
i -= 1
}
}
我得到一个数组 IOOBE 异常,因为它没有重新检查计数并继续直到原来的 results.count。
我该如何解决这个问题?它现在有效,但我不想在将来遇到麻烦。
【问题讨论】:
-
这段代码没有抱怨 var i in 0..
-
为什么苹果让 for 循环如此复杂是没有意义的,我不记得在过去的 25 年里遇到过问题
标签: ios arrays swift for-loop swift3