3

可能重复:
发送到实例的无法识别的选择器

嗯......像许多其他人一样,我收到了“无法识别的选择器发送到实例”错误......

当我按下按钮时会出现问题,例如在这种情况下:

-(IBAction)gotoTone:(id)sender
{
    if(self.tone == nil)
    {
       Tone *toneMain = [[Tone alloc]
                              initWithNibName:@"Tone" bundle:[NSBundle mainBundle]];
       self.tone = toneMain;
       [toneMain release];
    }

    [self.navigationController pushViewController:tone animated:YES];
}

错误是:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[Tone gotoTone:]: unrecognized selector sent to instance 0x531caa0”

在我插入新视图作为呈现给用户的第一个视图后,错误开始发生......另外,我使用导航栏,起初我忘记进入 MainWindow.xib 并将导航控制器更改为新视图,但这现在已经解决了。

你可以看到我的整个代码她:

文件所在的 .h:http://snipt.org/xnoO 文件所在的 .m:http : //snipt.org/xnoM

不要介意所有注释掉的行,直到我解决这个问题...

我已经尝试通过阅读“发送到实例的无法识别的选择器”的其他案例来找到解决方案,但我想我只是没有看到解决方案。我检查了我的 IB 连接,我已经清理了项目等等......

任何帮助将不胜感激

4

3 回答 3

6

我遇到了这个问题并通过将 Button 重新连接到之前修改过名称的 IBAction 来解决它。好尴尬。

于 2011-10-27T16:13:19.773 回答
1

我认为问题在于您将方法 gotoTone: 发送到 Tone 对象,但是此方法是在 Forside 对象中定义的。我不确定为什么会发生这种情况,但是我建议检查 xib 文件中的连接。

于 2011-09-28T12:50:17.543 回答
0

您尚未提供有关如何配置按钮的任何信息,但如果按钮位于您的 nib 文件中,则按钮目标的标识似乎设置为错误的类。因此,请确保按钮向其发送消息的对象的类是Forside而不是Tone.

于 2011-09-28T12:52:45.513 回答