0

デリゲートとしてビューコントローラーを使用したマップがあります。以下のメソッドを呼び出して、カスタムピンをマップに追加し、それらへのルートも取得します。

ルートの距離をピンに追加したいので、ルートを計算してからカスタム ピンに距離を追加してから、ピンを返す必要があります。

-(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;
}

これを解決する方法はありますか?

4

1 に答える 1

0

待たずにビューを返し、完了ハンドラーで更新する必要があると思います。NSConditionを使用して(およびおそらく他の方法で)非同期呼び出しを同期することは可能ですが、メインスレッドが完了に使用されている場合、それは危険です。

于 2015-07-22T12:21:27.647 に答える