Iphone 无法识别的选择器NSInvalidArgumentException:是否用于iAction?

Iphone 无法识别的选择器NSInvalidArgumentException:是否用于iAction?,iphone,ios,ipad,ios5,Iphone,Ios,Ipad,Ios5,我在iOS iPad应用程序中遇到了一个奇怪的问题。当我将ui按钮映射到iAction时,我的应用程序正在崩溃,并在内部事件中进行了润色。我在控制台中得到的错误如下 无法识别的选择器NSInvalidArgumentException 顺便说一下,我项目中的所有视图控制器都有相同的问题。视图控制器映射到选项卡栏控制器 我通过拖放其他项目中的所有文件创建了此项目。拖动的文件已正确放置在当前项目中,没有问题。这会引起问题吗 我不知道出了什么问题 谢谢右键单击xib中的按钮,检查按钮是否只有一个连接,

我在iOS iPad应用程序中遇到了一个奇怪的问题。当我将
ui按钮
映射到
iAction
时,我的应用程序正在崩溃,并在内部事件中进行了润色。我在控制台中得到的错误如下
无法识别的选择器NSInvalidArgumentException

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

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

我不知道出了什么问题


谢谢

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


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


您是否在interface builder中设置了自定义
UIViewController
子类的类


您是否在interface builder中设置了自定义
UIViewController
子类的类


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

1) .h中列出的方法签名是否与.m文件中列出的方法签名一致? 2) 当您调用预期参数方法时,是否传递了它们? 3) 该方法在.h和.m文件中是否始终列为类(+)或实例(-)方法

我知道你说你复制了文件,但是你测试过你复制的应用程序是否也能正常工作吗?其他应用程序是否将该方法连接到按钮?在你把它复制过来之后,你有没有改变什么


干杯

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

1) .h中列出的方法签名是否与.m文件中列出的方法签名一致? 2) 当您调用预期参数方法时,是否传递了它们? 3) 该方法在.h和.m文件中是否始终列为类(+)或实例(-)方法

我知道你说你复制了文件,但是你测试过你复制的应用程序是否也能正常工作吗?其他应用程序是否将该方法连接到按钮?在你把它复制过来之后,你有没有改变什么


欢呼

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

如果您正在使用:

[btn addTarget:self action:@selector(buttonTouched:)  forControlEvents:UIControlEventTouchUpInside];
然后,按
按钮
方法必须是
(iAction)

如果触摸的
按钮
方法的类型为
(void)
,则只需从方法调用中删除该


我知道这是一件简单的事情,但它可能会导致崩溃。

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

如果您正在使用:

[btn addTarget:self action:@selector(buttonTouched:)  forControlEvents:UIControlEventTouchUpInside];
然后,按
按钮
方法必须是
(iAction)

如果触摸的
按钮
方法的类型为
(void)
,则只需从方法调用中删除该


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

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

实际问题:

  • 我的项目是与弧
  • 实际上,我正在从一个视图导航到另一个视图,方法是通过单击带有
    iAction
    的按钮将其添加为子视图,如下所示

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

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

    解决方案:

    因此,当我刚刚在.h文件中声明了
    MyViewController-MyViewController
    并给出了
    @property
    @synthesis
    时。然后,将
    iAction
    更改为

       -(IBAction)signInAndGoToFrameworkView :(id)sender{  
    
        myViewController  = [[MyViewController alloc] initWithNibName:@"MyViewController " bundle:nil];
        [self.view addSubview:myViewController.view];
    
        }
    
    现在问题解决了


    谢谢。

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

    实际问题:

  • 我的项目是与弧
  • 实际上,我正在从一个视图导航到另一个视图,方法是通过单击带有
    iAction
    的按钮将其添加为子视图,如下所示

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

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

    解决方案:

    因此,当我刚刚在.h文件中声明了
    MyViewController-MyViewController
    并给出了
    @property
    @synthesis
    时。然后,将
    iAction
    更改为

       -(IBAction)signInAndGoToFrameworkView :(id)sender{  
    
        myViewController  = [[MyViewController alloc] initWithNibName:@"MyViewController " bundle:nil];
        [self.view addSubview:myViewController.view];
    
        }
    
    现在问题解决了


    谢谢。

    复制了故事板还是仅复制了代码?该按钮在outlet中是否有除您的方法之外的任何其他连接?实现中的方法是否与头文件中声明的方法相同?您是通过代码还是从Nib连接事件内部润色?今天我在ios中创建了一个新项目,将UIButton连接到名为“go”的操作,只有nslog(@“go”);但也犯了同样的错误。我试图指出错误,15分钟后,我重新创建了新项目,同样的方式,同样的代码…它工作!!!是时候切换到AppCode了,还是在XCode中5年后,我们仍在学习和了解我们的XCode?复制了故事板还是仅仅复制了代码?该按钮在插座中是否有任何其他连接,而不是您的方法?实现中的方法是否与头文件中声明的方法相同?您是否通过代码或今天,我在ios中创建了一个新项目,将一个UIButton连接到名为