致命错误:数组索引超出范围swift 2
问题描述:
我有GMSMarker数组的问题。当我运行我的代码时,显示“致命错误:数组索引超出范围”。我将从Google地图中删除标记。我不明白为什么会出现这个错误。这很简单,但请帮我解决问题。致命错误:数组索引超出范围swift 2
var MarkerList = [GMSMarker]()
if(MarkerList.count > 0){
for var j = 0 ; j < MarkerList.count ; j++ {
dispatch_async(dispatch_get_main_queue()) {
self.MarkerList[j].map = nil
}
}
}
答
您应该在主线程上运行整个循环。或者你可以更好地使用Swift2中的新的forEach函数。
前:
if(MarkerList.count > 0){
for var j = 0 ; j < MarkerList.count ; j++ {
dispatch_async(dispatch_get_main_queue()) {
self.MarkerList[j].map = nil
}
}
}
后:
dispatch_async(dispatch_get_main_queue()) {
MarkerList.forEach { $0.map = nil }
}
+0
谢谢。我的问题现在解决了。 –
你尝试打印日志,说什么是你的数组的大小以及当前指数(J)每次迭代? –
删除主队列,为什么你将它设置为无主队列?用户界面相关的更新应该在您从哪个队列运行您的代码的mainqueue – Muneeba
上完成? – user3441734