到处搜索,读取每个堆栈溢出,但仍然没有运气。我试图在MKMapView上显示一个注释数组。这是我的代码:
// in viewDidLoad
self.mapView.delegate = self
var artworks = [MyMKAnnotation]()
for x in self.locations2 {
let artwork = Artwork(title: "title1", coordinate: x)
artworks.append(artwork)
}
dispatch_async(dispatch_get_main_queue()) { () -> Void in
self.mapView.addAnnotations(artworks)
self.mapView.showAnnotations(artworks, animated: true)
}
好的,问题是,使用上面的当前代码,注释显示,但地图视图是空白的。这是我所看到的图像:http://i.imgur.com/GTCvf7V.jpg 如果我拿走dispatch_async方法,我可以显示地图视图,但是我只看到这个:http://i.imgur.com/X8JLShV.jpg然后注释不存在。
我认为这不是我的viewForAnnotation方法的问题,而是一个线程问题。我试过在主线程,后台线程和它们的混合上,并在showAnnotations方法中将动画设置为false,但没有任何作用。我也尝试将其移动到viewDidAppear,viewDidLayoutSubviews,但是再一次没有任何效果。它始终是1)注释显示,但没有地图视图,或2)地图视图显示但没有注释
这似乎应该相当简单。任何人都知道我做错了什么?
另外:我有2台设备,iOS 8和iOS 9.2,我正在使用互联网访问的真实设备上进行测试,没有模拟器。
任何帮助将不胜感激,谢谢