我制作了一个自定义的MKAnnotation类MapLocation。我没有麻烦设置或获取属性,除了在这个方法来创建一个MKAnnotationView。我需要在这里做,因为它应该从注解的索引中查找位置类型,并为annotationView选择一系列自定义注释图像。自定义注释'访问未知的getter方法'
经过多次尝试在MapLocation.h和.m中设置自定义getter和setter,我将它归结到我无法复制(强制性)getter,title的地方,将其重命名为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是未知的。无助于在界面中声明它。对于像我这样的新手来说有点奇怪,“因为编译器不应该担心消息,所以它们是运行时的”。我现在明白,如果没有演员就会抱怨额外的属性,谢谢! – 2010-05-18 15:42:20