2015-12-15 76 views
0

我有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  
      } 
     } 
    } 
+0

你尝试打印日志,说什么是你的数组的大小以及当前指数(J)每次迭代? –

+0

删除主队列,为什么你将它设置为无主队列?用户界面相关的更新应该在您从哪个队列运行您的代码的mainqueue – Muneeba

+0

上完成? – user3441734

回答

0

您应该在主线程上运行整个循环。或者你可以更好地使用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

谢谢。我的问题现在解决了。 –

相关问题