致命错误:数组索引在swift 2中超出范围

时间:2015-12-15 07:23:48

标签: ios iphone swift swift2

我对GMSMarker数组有疑问。当我运行我的代码时,它显示“致命错误:数组索引超出范围”。我要从谷歌地图中删除标记。我不明白为什么会出现这个错误。这很简单,但请帮助我解决问题。

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    
            }
        }
    }

1 个答案:

答案 0 :(得分:0)

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