开发者

[MKAnnotation]warning: '-setTitle:' not found in protocol(s)

开发者 https://www.devze.com 2023-02-26 07:46 出处:网络
i have a subclass named MyAnnotation to manage the annotation protocol, my problem is when i build the application, it gives me this warning :

i have a subclass named MyAnnotation to manage the annotation protocol, my problem is when i build the application, it gives me this warning :

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

the compiler point me to this line which causes the warning :

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

where annView is a MKPinAnnotationView :

MKPinAnnotationView *annView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentLoc"];

can you please help me t开发者_开发百科o fix that warning ? thx in advance :)


The annotation property of MKPinAnnotationView (which is a subclass of MKAnnotationView) is of type id<MKAnnotation> which doesn't define a -setTitle: method.

However, if your class that implements the MKAnnotation protocol defines a -setTitle: method for itself (using an @property declaration, for example), then you can set the title as follows:

MyAnnotationClass *myAnnot = (MyAnnotationClass *)annView.annotation;
myAnnot.title = @"You are here";

But you should probably set the annotation's title when you create it and before calling addAnnotation instead of setting it in viewForAnnotation.

Also, naming your class MkAnnotation is probably not a good idea. It can easily be confused with the MKAnnotation protocol. Use something like MalekAnnotation instead.

0

精彩评论

暂无评论...
验证码 换一张
取 消