为什么迭代数组的for循环抛出异常?

时间:2015-02-01 07:39:44

标签: arrays exception swift for-loop

我一直从这个看似明显的for循环中返回一个错误。

for var i = 0; i < self.restaurantNames.count; i++ {
    self.names += [Name(name: self.restaurantNames[i], city: self.addressCity[i])]
}

错误

fatal error: Array index out of range

2 个答案:

答案 0 :(得分:0)

检查self.addressCity array的尺寸。数组的大小可能小于self.restaurantNames array。一旦我变量将越过addressCity数组的限制。它将通过此​​例外

答案 1 :(得分:-2)

如果您的索引范围是010 您有11个元素。您的循环将尝试访问超出范围的11索引。因此,如果您未在索引1访问第一个元素,请尝试从i中减去0。否则,只需从1中删除array.count

无论哪一个有效,都取决于在访问阵列之前i是否增加。

因此对于索引为010的数组,
您正试图访问111
或尝试访问011

减去1修复了111的问题 (这是我怀疑正在发生的事情) 从1中减去array.count可修复011问题

另一种更简单的方法是使用 for-in-loop

没有时间发布代码会在我下班时检查