MKAnnotationView не отображается на карте - PullRequest
6 голосов
/ 24 ноября 2011

Я пытаюсь комментировать мою карту с помощью MKPointAnnotation, например:

- (void)viewDidLoad
{
    NSLog(@"RootViewController viewDidLoad");

    [super viewDidLoad];

    CLLocationCoordinate2D coord = 
    CLLocationCoordinate2DMake(54.903683,23.895435);

    MKPointAnnotation *toyAnnotation = [[MKPointAnnotation alloc] init];

    toyAnnotation.coordinate = coord;
    toyAnnotation.title = @"Title";
    toyAnnotation.subtitle = @"Subtitle";

    [mapView addAnnotation:toyAnnotation];

    [toyAnnotation release];

}

- (MKAnnotationView *)mapView:(MKMapView *)m 
            viewForAnnotation:(id <MKAnnotation>)annotation
{
    NSLog(@"RootViewController mapView: viewForAnnotation:");
    NSLog(@"%@",annotation);

    MKAnnotationView *pin = [[MKAnnotationView alloc] 
                             initWithAnnotation:annotation 
                             reuseIdentifier:nil];

    pin.enabled = YES;
    pin.canShowCallout = YES;

    return [pin autorelease];
}

Пин не отображается на карте.RootViewController является делегатом для mapView, и поэтому вызывается метод mapView:viewForAnnotation::

2011-11-24 15:04:03.808 App[2532:707] RootViewController mapView: viewForAnnotation:
2011-11-24 15:04:03.810 App[2532:707] <MKPointAnnotation: 0x1885c0>

Что я делаю не так и как решить эту проблему?

1 Ответ

21 голосов
/ 24 ноября 2011

В viewForAnnotation создайте MKPinAnnotationView вместо MKAnnotationView (для которого необходимо установить image).

Несмотря на то, что для представления аннотации выводов по умолчанию вам не нужно реализовывать метод делегата вообще.

...