[MKAnnotation]警告:'-setTitle:'未在协议中找到

时间:2011-04-19 00:51:52

标签: ios mapkit mkannotation

我有一个名为MyAnnotation的子类来管理注释协议,我的问题是当我构建应用程序时,它给了我这个警告:

'-setTitle:' not found in protocol(s)   

编译器指向此行,导致警告:

annView.annotation.title = @"You are here";

其中annViewMKPinAnnotationView

MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentLoc"];
你可以帮我解决这个警告吗?提前thx:)

1 个答案:

答案 0 :(得分:3)

annotation的{​​{1}}属性(MKPinAnnotationView的子类)属于MKAnnotationView类型,未定义id<MKAnnotation>方法。< / p>

但是,如果实现-setTitle:协议的类为自己定义MKAnnotation方法(例如,使用-setTitle:声明),则 然后 您可以按如下方式设置标题:

@property

但您应该在创建注释标题时以及在调用MyAnnotationClass *myAnnot = (MyAnnotationClass *)annView.annotation; myAnnot.title = @"You are here"; 之前设置注释的标题,而不是在addAnnotation中设置它。

此外,命名您的班级viewForAnnotation可能不是一个好主意。它很容易与MkAnnotation协议混淆。请改用MKAnnotation之类的内容。