我一直从这个看似明显的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
答案 0 :(得分:0)
检查self.addressCity array
的尺寸。数组的大小可能小于self.restaurantNames array
。一旦我变量将越过addressCity数组的限制。它将通过此例外
答案 1 :(得分:-2)
如果您的索引范围是0
到10
您有11
个元素。您的循环将尝试访问超出范围的11
索引。因此,如果您未在索引1
访问第一个元素,请尝试从i
中减去0
。否则,只需从1
中删除array.count
。
无论哪一个有效,都取决于在访问阵列之前i
是否增加。
因此对于索引为0
到10
的数组,
您正试图访问1
到11
,
或尝试访问0
至11
。
减去1
修复了1
到11
的问题
(这是我怀疑正在发生的事情)
从1
中减去array.count
可修复0
到11
问题
另一种更简单的方法是使用 for-in-loop 。
没有时间发布代码会在我下班时检查