我正在尝试在 didTapMarker
函数中进行 API 调用。通话结束后,我试图设置 marker.title
但它不起作用。该调用是异步调用,我认为这与问题有某种关系。下次我点击标记时,它会显示结果,但不会在第一次点击后显示。
这是代码,
func mapView(mapView: GMSMapView!, didTapMarker marker: GMSMarker!) -> Bool {
if marker.title == nil{
makeApiRequest(["id": marker.userData],
success: {
(response: Dictionary?) in
if let name = response?["name"]?.string{
marker.title = name
}
},
failure: {
(error: NSError) in
})
}
}
请帮忙。我应该怎么做才能让它在第一次点击时工作。
我认为你可以使用 self.mapView
(假设 self.mapView 是你的实例变量)
sau đó vào marker.title = name
正下方执行 self.mapView .selectedMarker = marker
如果你的响应 block 仍然不在主UI线程中,你可以在主UI线程中更新你的mapView
dispatch_async(dispatch_get_main_queue()) {
marker.title = name
self.mapView.selectedMarker = marker
}
Tôi là một lập trình viên xuất sắc, rất giỏi!