Objective-C中的“无法识别的选择器发送到实例”错误

我创建了一个按钮并为其添加了一个动作,但是一旦调用它,我就会收到此错误:


-[NSCFDictionary numberButtonClick:]: unrecognized selector sent to instance

 0x3d03ac0 2010-03-16 22:23:58.811

 Money[8056:207] *** Terminating app

 due to uncaught exception

 'NSInvalidArgumentException', reason:'*** -[NSCFDictionary numberButtonClick:]:  unrecognized selector sent to instance 0x3d03ac0'

这是我的代码:


- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {

    if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {

        UIButton *numberButton = [UIButton buttonWithType:UIButtonTypeCustom];        

        numberButton.frame = CGRectMake(10, 435, 46, 38);

        [numberButton setImage:[UIImage imageNamed:@"one.png"] forState:UIControlStateNormal];

        [numberButton addTarget:self action:@selector(numberButtonClick:) forControlEvents:UIControlEventTouchUpInside];

        [self.view addSubview: numberButton]; 

    }

return self;

}


-(IBAction)numberButtonClick:(id)sender{

    NSLog(@"---");

}


一只名叫tom的猫
浏览 587回答 3
3回答

慕标5832272

看来您没有正确地管理视图控制器的内存,并且正在某个时候将其释放—这导致该numberButtonClicked:方法被发送到另一个对象,该对象现在正在占用视图控制器以前占用的内存...确保您正确保留/释放了视图控制器。

qq_花开花谢_0

这是Google针对此问题的最佳答案,但我有不同的原因/结果-我想我要加2美分,以防其他人偶然发现此问题。就在今天早上,我遇到了类似的问题。我发现,如果右键单击出现问题的UI项,则可以看到已创建的连接。就我而言,我的按钮最多可连接两个动作。我从右键单击菜单中删除了这些操作,然后重新连接了它们,问题得到解决。因此,请确保您的操作正确连接。
打开App,查看更多内容
随时随地看视频慕课网APP