每次我使用这个时,我都会收到警告“MyAnnotation 没有实现 MKAnnotation 协议”:
[mapView addAnnotation:annotation];
or
[mapView removeAnnotation:mapView.annotations];
有人有想法吗?
每次我使用这个时,我都会收到警告“MyAnnotation 没有实现 MKAnnotation 协议”:
[mapView addAnnotation:annotation];
or
[mapView removeAnnotation:mapView.annotations];
有人有想法吗?
(假设你的注解对象是 MyAnnotation 类的一个实例)
MKMapView 要求其注释对象符合MKAnnotation
协议以确保它们实现某些必需的方法 - 否则您的应用程序可能会在运行时产生错误。该协议定义如下:
// MKAnnotation.h
@protocol MKAnnotation <NSObject>
// Center latitude and longitude of the annotion view.
@property (nonatomic, readonly) CLLocationCoordinate2D coordinate;
@optional
// Title and subtitle for use by selection UI.
- (NSString *)title;
- (NSString *)subtitle;
@end
那就是您的 MyAnnotation 类必须定义和实现coordinate
属性,并且还可以实现 2 个可选title
方法。要让编译器知道您的类实际上符合协议,您必须按以下方式声明您的类:
@interface MyAnnotation: NSObject <MKAnnotation> // Or whatever parent class you have