我有一个带有视图控制器的地图作为它的委托,我调用下面的方法将一些自定义引脚添加到地图中,并获取到它们的路径。
我想添加路径到引脚的距离,所以我需要计算路线,然后在返回引脚之前将距离添加到自定义引脚。
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id<MKAnnotation>)annotation
{
//setup custom pin view and directions request
[directions calculateDirectionsWithCompletionHandler:
^(MKDirectionsResponse *response, NSError *error) {
if (error)
{
// error
} else {
// no error
}
}];
// add distance to custom pin view
// ONLY once directions calculated
return custom pin view;
}
我会如何解决这个问题?
答案 0 :(得分:0)
我认为您需要在不等待的情况下返回视图,然后在完成处理程序中更新它。可以使用NSCondition
(以及可能的其他方式)同步异步调用,但是当主线程用于完成时,这是危险的。