无法识别的选择器NSInvalidArgumentException:用于IBAction?

时间:2013-01-02 14:10:21

标签: iphone ios ipad ios5

我在iOS iPad应用程序中遇到了一个奇怪的问题。当我将UIButton映射到具有修饰内部事件的IBAction时,我的应用程序崩溃了。我在控制台中遇到的错误就像 Unrecognized selector NSInvalidArgumentException

顺便说一下,我项目中的所有视图控制器都有同样的问题。视图控制器映射到选项卡栏控制器。

我通过拖放另一个项目中的所有文件创建了这个项目。拖动的文件正确放置在当前项目中,没问题。这会引起问题吗?

我无法弄清楚出了什么问题。

由于

5 个答案:

答案 0 :(得分:1)

只需右键单击xib中的按钮,检查您的按钮只有一个连接,如果您有多个连接,请删除不需要的连接。

enter image description here

答案 1 :(得分:1)

您是否在界面构建器中设置了自定义UIViewController子类的类?

enter image description here

答案 2 :(得分:1)

如果问题在 Gabriele Petronella Rajneesh071 应用解决方案后仍然存在,那么可能会出现一个小错误:

如果您正在使用:

[btn addTarget:self action:@selector(buttonTouched:)  forControlEvents:UIControlEventTouchUpInside];

然后buttonTouched方法必须为(IBAction)

如果buttonTouched方法类型为(void),则只需从方法调用中删除 :

我知道这很简单,但可能会导致崩溃。

答案 3 :(得分:0)

我会检查以确保你有UIButton引用的无法识别的方法:

1).h。中列出的方法签名是否与.m文件中列出的方法签名一致?  2)当你调用它们方法时传递的任何预期参数?  3)在.h和.m文件中一致列为类(+)或实例( - )方法的方法是什么?

我知道你说你复制了文件,但是你测试过以确保你复制的应用程序也有效吗?其他应用程序是否将方法连接到按钮?你复制之后是否更改了任何内容?

干杯

答案 4 :(得分:0)

感谢您的回答。我已经解决了这个问题。

实际问题:

  1. 我的项目是ARC。
  2. 实际上我是通过点击IBAction按钮将其添加为子视图,从一个视图导航到另一个视图到另一个视图,

    -(IBAction)signInAndGoToFrameworkView :(id)sender{  
    
    MyViewController myViewController  = [[MyViewController alloc] initWithNibName:@"MyViewController " bundle:nil];
    [self.view addSubview:myViewController.view];
    
    }
    
  3. 3。由于项目是使用ARC,因此myViewController对象被释放,因为这是一个局部变量。所以当我按下后退按钮

       [self.view removeFromSuperview]; 
    
    该应用程序正在崩溃。

    <强>解决方案:

    所以当我刚刚在.h文件中声明MyViewController myViewController并且还给出了@property@synthesize时。然后使用,

    更改了IBAction
       -(IBAction)signInAndGoToFrameworkView :(id)sender{  
    
        myViewController  = [[MyViewController alloc] initWithNibName:@"MyViewController " bundle:nil];
        [self.view addSubview:myViewController.view];
    
        }
    

    现在问题解决了。

    感谢。