1

StackOverflow でこのエラーの解決策がいくつかあることはわかっていますが、私の問題に固有のものは見つかりませんでした。

以下を使用して、Google マップのマーカー情報ウィンドウのカスタム ビューを作成しようとしています。

- (UIViewController *)mapView:(GMSMapView *)mapView markerInfoWindow:(GMSMarker *)marker {

DMinfoWindow *view =  [[[NSBundle mainBundle] loadNibNamed:@"DMinfoWindow" owner:self options:nil] objectAtIndex:0];
        view.firstName.text = self.firstName;
        return view;
    }

DMinfoWindow という名前の UIViewController を作成しました。これには、firstName という名前の UILabel があり、IBOutlet にリンクされています。

「view.firstName.text = self.firstName;」をコメントアウトすると 行、それは正常に動作し、マーカーをクリックするとカスタム ビューが表示されます。

ただし、行が含まれていると、次のエラーが発生します。

2013-06-23 17:58:52.763 ExerciseBuddy[1406:1a003] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIView firstName]: unrecognized selector sent to instance 0x1623a6e0'

このエラーに関するヘルプは素晴らしいでしょう! 何かがメモリにあるはずではないと思いますが、何がわかりません。

どうもありがとう

4

1 に答える 1

0

'-[UIView firstName]: 認識できないセレクターがインスタンスに送信されました

さて、これを翻訳します:

    view.firstName.text = self.firstName;

ドット表記を使用しない場合:

    [[view firstName] setText: [self firstName]];

これが をいじる唯一のコード行であると仮定すると、firstName失敗する可能性のある場所が 2 つあります。

UIViewそのメソッドを実装していないことについて不平を言っていることを考えると、[view firstName]失敗しているのは . viewのインスタンスでよろしいですかDMInfoWindow? nib ローディング式からの配列内の最初のオブジェクトが非常に脆弱であるという仮定。XIB ファイルから必要なオブジェクトに明示的に接続されたアウトレットが必要です。

于 2013-06-23T17:13:25.557 に答える