Я создал собственный класс MKAnnotation, MapLocation. У меня нет проблем с настройкой или получением свойств, кроме этого метода для создания MKAnnotationView. Мне нужно сделать это здесь, так как он должен искать тип местоположения из индекса аннотации и выбирать одно из семейства пользовательских изображений аннотаций для аннотационного представления.Пользовательская аннотация, 'Доступ к неизвестному методу getter'
После многочисленных попыток создать пользовательские геттеры и сеттеры в MapLocation.h и .m, я откинул его туда, где я не могу даже скопировать (обязательный) геттер, заголовок, переименовать его в title2 и попытаться получить его возвращаемое значение. Это мой код:
-(MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *[email protected]"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;
}
На 4-й строке, название возвращается правильно, но вызов 5-й линии к скопированной метода дает сообщение об ошибке в этой теме.
Я действительно смотрел в документах XCode, но я, вероятно, просто не понимаю, как объявить его, чтобы этот метод его видел. Странно, что он видит заголовок, но не копию title2.
Я действительно смотрел, как объявить протокол MapLocation, когда увидел, что вы уже ответили. Итак, теперь у моих аннотаций есть индексы, которые связывают их с тем, что мне нужно, и отображаются правильные изображения для типа местоположения. Благодаря! Это не сработало (я уже пробовал это раньше): NSString * str2 = [annotation title2]; Он говорит, что -title2 неизвестен. Не помогает объявить его в интерфейсе. Немного странно для новичка, подобного мне, «поскольку компилятор не должен беспокоиться о сообщениях, это среда исполнения». Теперь я понимаю, что он будет жаловаться на дополнительные свойства без броска, спасибо! –