MKAnnotationView (ここで説明) で「選択された」プロパティを使用しようとしています。これは、ユーザーが選択した注釈を削除できるようにするためです...
次のコードは、MKMapView で選択されたピンを見つけて削除する必要があります。
CSMapAnnotation *a;
for(a in [mapView annotations])
{
if([a selected]) //Warning: 'CSMapAnnotation' may not respond to '-selected'
{
[mapView removeAnnotation:a];
}
}
CSMapAnnotation は、次のように定義されたカスタム マップ アノテーションです。
#import <Foundation/Foundation.h>
#import <MapKit/MapKit.h>
// types of annotations for which we will provide annotation views.
typedef enum {
kCMapAnnotationTypeStart = 0,
kCMapAnnotationTypeCheckpoint = 1,
kCMapAnnotationTypeEnd = 2
} CSMapAnnotationType;
@interface CSMapAnnotation : NSObject <MKAnnotation>
{
CLLocationCoordinate2D coordinate;
CSMapAnnotationType annotationType;
NSString* title;
NSString* userData;
}
-(id) initWithCoordinate:(CLLocationCoordinate2D)inCoordinate
annotationType:(CSMapAnnotationType) annotationType
title:(NSString*)title;
- (BOOL) isEqualToAnnotation:(CSMapAnnotation *) anAnnotation;
@property (nonatomic, readwrite) CLLocationCoordinate2D coordinate;
@property (nonatomic, readwrite) CSMapAnnotationType annotationType;
@property (nonatomic, retain) NSString* title;
@property (nonatomic, retain) NSString* userData;
私は本当に から「継承」していないのでMKAnnotationView
、CSMapAnnotation
に応答しないと思いますselected
。
この問題を解決する最善の方法は何ですか??