2013-08-28 3 views
1

Я хочу отобразить аннотации на моей карте, а затем выбрать один из них.Как заставить отображать аннотации карт?

- (void)someWebServiceCallbackWithResult:(NSDictionary *)mapPins { 

    [mapView removeAnnotations:mapView.annotations]; 
    [mapView addAnnotations:[mapPins allValues]]; 

    for (Pin *p in [mapPins allValues]) { 

     if ([p.name isEqualTo:@"Cafe-Derp"] && mapView.hidden == NO) { 

     //selectedMapAnnotationView is returned as nil at this point 
     MapAnnotationView *selectedMapAnnotationView = (MapAnnotationView *)[mapView viewForAnnotation:p]; 
     [self presentPopover:p inMapAnnotationView:selectedMapAnnotationView]; 
     } 
    } 
} 

Однако viewForAnnotation: возвращает NIL в, если заявление.

Этого не должно быть, потому что addAnnotations: должен автоматически отображать все контакты на моей карте. Код будет работать только тогда, когда я жду в течение определенного промежутка времени перед вызовом viewForAnnotation: как это:

double delayInSeconds = 1.0; 
dispatch_time_t popTime = dispatch_time(DISPATCH_TIME_NOW, (int64_t)(delayInSeconds * NSEC_PER_SEC)); 
dispatch_after(popTime, dispatch_get_main_queue(), ^(void){ 
    MapAnnotationView *selectedMapAnnotationView = (MapAnnotationView *)[mapView viewForAnnotation:p]; 
    [self presentPopover:p inMapAnnotationView:selectedMapAnnotationView]; 
}); 

Почему это так? Есть ли метод на карте, который я должен вызвать, чтобы запустить его для обновления?

ответ

0

Я не думаю, что вы должны использовать viewForAnnotation самостоятельно. вместо этого попробуйте это

[mapView selectAnnotation:p animated:YES]; 
+0

А, спасибо, что указали это. Кажется, это лучший способ, однако мои аннотации все еще не загружаются в конце метода, так что вызов ничего не делает. –

+0

Вы имеете в виду аннотации (как в выводах, не отображаются на карте) или выноски (всплывающее окно, которое вы получаете при выборе булавки? Есть несколько вещей, которые нужно проверить. Является ли 'allValues' правильным? массив? Является ли функция 'viewForAnnotations' возвращением правильной вещи? – Craig

Смежные вопросы