私のアプリでは、すでに.hファイルで宣言されているインスタンス変数であるボタンがあります。 は今までターゲットに割り当てると、実際にボタンを押すと、それを割り当てた後、アプリのクラッシュは私のデバッガで次の出力を与える:UIButton呼び出しセレクタがアプリケーションをクラッシュする
-[__NSCFString handleActionSheet:]: unrecognized selector sent to instance 0x9090330
2012-05-04 17:51:02.646 financeAppV2[2595:f803] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[__NSCFString handleActionSheet:]: unrecognized selector sent to instance 0x9090330'
*** First throw call stack:
(0x13d1022 0x1562cd6 0x13d2cbd 0x1337ed0 0x1337cb2 0x13d2e99 0x1e14e 0x1e0e6 0xc4ade 0xc4fa7 0xc3d8a 0x2dfa1a 0x13a599e 0x133c640 0x13084c6 0x1307d84 0x1307c9b 0x12ba7d8 0x12ba88a 0x1b626 0x29dd 0x2945)
terminate called throwing an exceptionCurrent language: auto; currently objective-c
私のコードは次のようになります。
saveButton=[UIButton buttonWithType:UIButtonTypeCustom];
[saveButton setBackgroundImage:[UIImage imageNamed:@"intervalbutton"] forState:UIControlStateNormal];
[saveButton setBackgroundImage:[UIImage imageNamed:@"intervalbuttonpressed"] forState:UIControlStateHighlighted];
saveButton.alpha=.8;
saveButton.frame= frame;
UILabel* label=[[UILabel alloc]initWithFrame:CGRectMake(0, 2, saveButton.frame.size.width, 21)];
[saveButton addSubview:label];
[saveButton addTarget:self action:@selector(handleActionSheet:) forControlEvents:UIControlEventTouchDown];
[self.view addSubview:saveButton];
-(void)handleActionSheet:(id)sender{
NSLog(@"working");
}
アプリがクラッシュする可能性がある理由はありますか?
あなたは '[saveButton addSubview:label];'をコメントアウトしてもそれが起こりますか? – Costique
はい、あります。実際には、私はさらに奇妙なエラーが発生します: - [_ UITableViewSeparatorView handleActionSheet:]:インスタンスに送信された認識できないセレクタ0x6a89a30 2012-05-04 18:12:52.485 financeAppV2 [2997:f803] ***キャッチされない例外'NSInvalidArgumentException'、理由: ' - [_ UITableViewSeparatorView handleActionSheet:]:未認識セレクタインスタンス0x6a89a30に送ら' (0x13d1022 0x1562cd6 0x13d2cbd 0x1337ed0 0x1337cb2 0x13d2e99 0x1e14e 0x1e0e6 0xc4ade 0xc4fa7 0xc3d8a 0x2dfa1a 0x13a599e 0x133c640 0x13084c6 0x1307d84 0x1307c9b 0x12ba7d8 ***まずスローコールスタック0x12ba88a 0x1 ... – iJatrat