0

iPhone アプリで mapView:annotationView:calloutAccessoryControlTapped: メソッドを実装しようとしています。メソッドが呼び出されていますが、渡されたビューを使用しようとすると

Annotation* temp = (Annotation *)view.annotation;

アプリがエラーでクラッシュします。

2011-03-29 12:51:54.453 Flora[3316:207] *キャッチされない例外 'NSInvalidArgumentException' が原因でアプリを終了します。理由: '-[UITouchesEvent 注釈]: インスタンス 0x6d13410 に送信された認識されないセレクター'

デバッガーでは、ビューが MKAnnotationView ではなく UITouchesEvent であるかのように見えます。

私は人々がこのメソッドで持っていた他の質問を読みましたが、渡されたビューの注釈プロパティを使用した後にすべて機能します.これは私にとってはうまくいきません.

4

1 に答える 1

2

viewForAnnotation メソッドで、吹き出しアクセサリ ビューを設定するときに、ボタンに addTarget を実行していますか? (そうであれば、しないでください。)

[rightButton addTarget:self 
    action:@selector(mapView:annotationView:calloutAccessoryControlTapped:) 
    forControlEvents:UIControlEventTouchUpInside];

ボタンのターゲットとしてデリゲート メソッドを追加しないでください。デリゲート メソッドは、コールアウト アクセサリが押されると、適切なパラメーター値で自動的に呼び出されます (マップ ビューのデリゲートが設定されている場合)。viewForAnnotation に上記のような行がある場合は、削除してください。

于 2011-03-29T18:29:38.853 に答える