iOS MapKit didAddAnnotationViews метод не вызван - PullRequest
0 голосов
/ 16 марта 2011

Я пытаюсь загрузить аннотации из отдельного класса после анализа данных.Данные анализируются правильно, что я следую через NSLog.Я отправляю данные в класс, ответственный за загрузку MKMapView.Этот класс получает правильные данные.

Вот код класса, который анализирует мои данные (ParseData.m):

AnnotationsTest *loadFriend = [[AnnotationsTest alloc] init];
    [loadFriend loadOutAnnotations:friendFound];
    [loadFriend loadOutAnnotationsAgain];
    [loadFriend release];

Метод, вызываемый в моем втором классе (MapViewController).m):

-(void)loadOutAnnotations:(NSMutableArray *)friendData

со следующим кодом:

    CLLocationCoordinate2D workingCoordinate;

workingCoordinate.latitude = [[friendData objectAtIndex:5] floatValue];
workingCoordinate.longitude = [[friendData objectAtIndex:4] floatValue];
MapAnnotation *appleStore1 = [[MapAnnotation alloc] initWithCoordinate:workingCoordinate];
[appleStore1 setTitle:@"Title"];
[appleStore1 setSubtitle:@"subtitle"];
[appleStore1 setUserData:[friendData objectAtIndex:6]];
[appleStore1 setAnnotationType:iCodeBlogAnnotationTypeApple];

[self.mapView addAnnotation:appleStore1];

И, наконец, вот мой код для ответа на события addAnotation (MapViewController.m):

- (void)mapView:(MKMapView *)mapViews didAddAnnotationViews:(NSArray *)views {
id myAnnotation = [mapViews.annotations objectAtIndex:0];
[mapViews selectAnnotation:myAnnotation animated:YES];
NSLog(@"didAddAnnotationViews is called");}

Аннотация будет отлично загружаться, если я жестко закодирую переменные, не пропущу NSMutableArray через метод и вызову метод в разделе viewDidLoad класса MapViewController.Когда я пытаюсь вызвать метод для добавления аннотаций из другого класса, метод didAddAnnotationViews не отвечает.

Пожалуйста, сообщите.Заранее спасибо !!

Эван

1 Ответ

3 голосов
/ 16 марта 2011

Итак, я посмотрел на ваш код и ожидаемое поведение: аннотация карты - это просто абстрактное представление аннотации. Вы должны «вручную» добавить его на карту. Карта, КОГДА запрашивает у делегата ВИД, который он должен использовать для ОТОБРАЖЕНИЯ аннотации. Поэтому неудивительно, что он не появляется, когда вы не добавляете его на карту:)

...