Am făcut o clasă personalizat MKAnnotation, MapLocation. Am nici o problema setarea sau pentru a obține proprietăți, cu excepția cazului în această metodă pentru a crea un MKAnnotationView. Trebuie să o fac aici, din moment ce ar trebui să caute un tip de locație din indexul adnotarea și selectați unul dintr-o familie de imagini personalizate de adnotare pentru annotationView.
După numeroase încercări de configurarea getteri personalizate și setteri în MapLocation.h și .m, l-am fiert în jos pentru cazul în care nici măcar nu pot copia (obligatoriu) getter, titlul, redenumiți-l la TITLE2, și să încercați să obțineți valoarea returnata . Acesta este codul meu:
-(MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *placemarkIdentifier=@Map Location Identifier;
NSString *str1=annotation.title;
NSString *str2=annotation.title2;
if([annotation isKindOfClass:[MapLocation class]]) {
MKAnnotationView *annotationView=(MKAnnotationView *)[theMapView dequeueReusableAnnotationViewWithIdentifier:placemarkIdentifier];
if (annotationView==nil) {
annotationView=[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:placemarkIdentifier];
}
else
annotationView.annotation=annotation;
return annotationView;
}
return nil;
}
Pe linia 4, din titlu este returnat corect, dar apelul a 5-a liniei la metoda copiat produce mesajul de eroare în subiect.
M-am uita în docs Xcode, dar eu sunt, probabil, doar nu obtinerea cum să o declare astfel încât această metodă vede. Ciudat că vede getter din titlu, dar nu copia TITLE2.













