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.
加载中,请稍侯......
精彩评论