Nicht

2011-01-15 20 views
0

in Protokoll gefunden Ich habe MKAnnotation subclassed, so dass ich Objekte Anmerkungen zuweisen und dann diese Aufgabe mit einem Controller wie so Ansicht zuweisen:Nicht

- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control { 

    PlaceDetailView *detailView = [[PlaceDetailView alloc] initWithStyle:UITableViewStyleGrouped]; 
    detailView.place = [view.annotation place]; 
    [self.navigationController pushViewController:detailView animated:YES]; 
    [detailView release]; 

} 

Dieses großen funktionieren, aber ich bin mit dem folgenden Fragen:

  • Wenn ich den Platz Getter-Methode versuchen, Zugriff wie view.annotation.place so erhalte ich einen Fehler:

    unbekannten Ort Getter-Methode Zugriff

  • Wenn ich den Ort Getter-Methode acces wie [view.annotation place] so erhalte ich eine Warnung:

    Ort nicht in Protokoll gefunden

Von meinem Verständnis ist dies, weil der Ort Objekt nicht in der definierten MKAnnotation Protokoll, obwohl ich mir dessen bewusst bin, bin ich mir nicht sicher, wie ich dem Complier sagen soll, dass es einen Ort gibt und er nicht blind heißt.

Antwort

1

Wenn Sie sicher sind die view.annotation ist immer die individuelle Klasse, dann können Sie werfen es nur zu Ihrer Klasse:

MyAnnotation *my = (MyAnnotation *)view.annotation; 
detailView.place = my.place; 
+0

Arbeitete großer Dank, ich die leichte Veränderung erforderlich herausgefunden, bevor Sie Ihre Antwort bearbeitet und es kompiliert mit 0 Warnungen :) – Alex