カスタム MKAnnotation クラス MapLocation を作成しました。MKAnnotationView を作成するこの方法を除いて、プロパティの設定や取得に問題はありません。注釈のインデックスから場所の種類を検索し、annotationView のカスタム注釈画像のファミリの 1 つを選択することになっているため、ここでそれを行う必要があります。
MapLocation.h と .m でカスタムのゲッターとセッターを設定しようと何度も試みた後、(必須の) ゲッター、タイトルをコピーすることさえできず、タイトルを title2 に名前を変更し、その戻り値を取得しようとすることさえできないところまで煮詰めました。 . これは私のコードです:
-(MKAnnotationView *)mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>)annotation {
static NSString *placemarkIdentifier=@"Map Location Identifier";
NSString *str1=annotation.title;
NSString *str2=annotation.title2;
if([annotation isKindOfClass:[MapLocation class]]) {
MKAnnotationView *annotationView=(MKAnnotationView *)[theMapView dequeueReusableAnnotationViewWithIdentifier:placemarkIdentifier];
if (annotationView==nil) {
annotationView=[[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:placemarkIdentifier];
}
else
annotationView.annotation=annotation;
return annotationView;
}
return nil;
}
4 行目ではタイトルが正しく返されますが、コピーされたメソッドに対する 5 行目の呼び出しでは、トピックのエラー メッセージが生成されます。
私はXCodeのドキュメントを見ましたが、おそらくそれを宣言する方法がわからないので、このメソッドはそれを認識しています。title ゲッターが表示されるのに、title2 コピーが表示されないのは奇妙です。