同じアプリの異なる実行で同じアクションが異なるエラーをスローする、この応答を見たことがありません。
ボタンをクリックするとエラーをスローする NSViewController サブクラスにボタン (送信者をログに記録するだけ) の IBAction があります (これは OSX アプリです)。私はこれらを取得しています(これまでのところ):
-[NSArrayM buttonClick:]: unrecognized selector sent to instance
-[__NSCFDictionary buttonClick:]: unrecognized selector sent to instance
-[__NSCFSet buttonClick:]: unrecognized selector sent to instance
-[NSRunLoop buttonClick:]: unrecognized selector sent to instance
そして、恐ろしいEXC_BAD_ACCESS。
このテスト アプリの唯一のコードは、View Controller をインスタンス化するためのアプリ デリゲートの次のコードです。
- (void)applicationDidFinishLaunching:(NSNotification *)aNotification {
TestController *controller = [[TestController alloc] initWithNibName:@"TestController" bundle:nil];
[self.window.contentView addSubview:controller.view];
}
そして、View Controller サブクラスのこの IBAction:
-(IBAction)buttonClick:(id)sender {
NSLog(@"%@",sender);
}
ビュー コントローラーに実装されている IBAction は、IB で (ファイルの所有者を介して) そのビューにあるボタンに接続されます。
このような単純なプログラムで、どうしてこれほど多くの異なるエラー メッセージが表示されるのか理解できません。これは、View Controller がレスポンダー チェーンに含まれていないことに問題があるのでしょうか? もしそうなら、なぜそれはエラーをスローする必要がありますか?
コントローラーのビューでコントローラーを次のレスポンダーとして設定しようとしましたが ([controller.view setNextResponder:controller]; を使用)、起動時に EXC_BAD_ACCESS エラーが発生するだけです。