在我的iOS Swift应用程序中,我以这种方式使用异步任务填充2个数组:
let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT
dispatch_async(dispatch_get_global_queue(priority, 0)) {
for n: Node in DataManager.sharedInstance.allNodes {
locationNode = CLLocationCoordinate2D(latitude: n.Lat, longitude: n.Lon)
if locationNode.latitude < ne.latitude && locationNode.longitude < ne.longitude && locationNode.latitude > sw.latitude && locationNode.longitude > sw.longitude {
self.listVisibleNodes.append(n)
// Declare the marker `hello` and set its coordinates, title, and subtitle
let hello = CustomPointAnnotation()
hello.coordinate = locationNode
hello.title = n.Label
hello.subtitle = n.Net+"_"+String(n.Id)
hello.imageName = n.Label
self.visibleMarkersOnMap.append(hello)
}
}
dispatch_async(dispatch_get_main_queue()) {
// update some UI
mapView.addAnnotations(self.visibleMarkersOnMap)
}
}
如您所见,我将值附加到2个位置的数组中。有时我在运行此代码时遇到错误,并非总是如此。一旦我遇到致命错误:
带有负数的UnsafeMutablePointer.destroy
有时我得到EXC_BAD_ACCESS
。
我无法弄清楚这段代码有什么问题。有人能帮我吗?感谢。