MyAnnotation no implementa el protocolo MKAnnotation
-
19-09-2019 - |
Pregunta
Tengo una advertencia "MyAnnotation no implementa el protocolo MKAnnotation" cada vez que utilizo este:
[mapView addAnnotation:annotation];
or
[mapView removeAnnotation:mapView.annotations];
Alguien tiene una idea?
Solución
(que se supone que es objeto de anotación una instancia de la clase MyAnnotation)
MKMapView requiere que sus objetos de anotación se ajustan a MKAnnotation
protocolo para asegurar que implementan ciertos métodos necesarios - de lo contrario su aplicación puede producir errores en tiempo de ejecución. Este protocolo se define como sigue:
// 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
Esta es la clase de MyAnnotation deben definir y aplicar la propiedad coordinate
y también puede poner en práctica métodos title
2 opcionales. Para permitir que el compilador sabe que su clase se ajusta realmente a un protocolo que debe declarar la clase de la siguiente manera:
@interface MyAnnotation: NSObject <MKAnnotation> // Or whatever parent class you have