gpt4 book ai didi

ios - mapView.addAnnotation() 在触摸 map 之前不向 map 添加图钉

转载 作者:行者123 更新时间:2023-11-28 14:05:22 24 4
gpt4 key购买 nike

我有一个 Storyboard的 mapView,一切正常,除了一件事:我通过 RESTful 调用所做的注释并添加到 map mapView.addAnnotation() 直到我触摸并移动 map 。这是相关代码:

class ViewController: UIViewController, MKMapViewDelegate {
@IBOutlet weak var mapView: MKMapView!

override func viewDidLoad() {
super.viewDidLoad()
self.mapView.delegate = self

// API Call
URLSession.shared.dataTask(with: mRequest) {
(data, response, error) in do {

let data = data

...

let annotation = MKPointAnnotation()
annotation.coordinate = CLLocationCoordinate2DMake(lat!, lon!)
annotation.title = name as? String
annotation.subtitle = details as? String
self.mapView.addAnnotation(annotation)

}
...
}.resume()

}
}

最佳答案

问题是您正在从后台线程更新 UI。您添加注释的 block 是由于 dataTask 完成而发生的,并且这是在后台发生的。将注释代码包装在 DispatchQueue.main.async { } block 中,您应该会看到注释显示正常。

DispatchQueue.main.async{
let annotation = MKPointAnnotation()
annotation.coordinate = CLLocationCoordinate2DMake(lat!, lon!)
annotation.title = name as? String
annotation.subtitle = details as? String
self.mapView.addAnnotation(annotation)
}

关于ios - mapView.addAnnotation() 在触摸 map 之前不向 map 添加图钉,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53052343/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com