推送视图控制器时应用程序崩溃

时间:2013-09-26 00:55:56

标签: ios objective-c unrecognized-selector

嘿,当我推动另一个视图控制器时,我在main.m中得到了这个

return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

我用它来推动视图控制器 -

-(void)showMore:(UIButton *)sender
{
    MoreViewController *moreViewController = [[MoreViewController alloc] init];
    [self.navigationController pushViewController:moreViewController animated:YES];
}

我在这里发送消息

[moreButton addTarget:self action:@selector(showSettings:)      forControlEvents:UIControlEventTouchUpInside];

这是我的错误 -

  

2013-09-25 18:16:03.186 Time Travel [1591:60b]应用程序窗口在应用程序启动结束时应该有一个根视图控制器   2013-09-25 18:16:05.179 Time Travel [1591:60b] - [NSConcreteValue showSettings:]:无法识别的选择器发送到实例0x14e5ea70   2013-09-25 18:16:05.181 Time Travel [1591:60b] *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:' - [NSConcreteValue showSettings:]:无法识别的选择器发送到实例0x14e5ea70'   * 第一次抛出调用堆栈:   (0x2e1e5e8b 0x384e26c7 0x2e1e97b7 0x2e1e80b7 0x2e136e98 0x309a055f 0x309a04fb 0x309a04cb 0x3098c0f3 0x3099ff13 0x3099fbdd 0x3099ac09 0x3096ff59 0x3096e747 0x2e1b0f27 0x2e1b03ef 0x2e1aebdf 0x2e119541 0x2e119323 0x32e492eb 0x309d01e5 0x4cbd5 0x389dbab7)   libc ++ abi.dylib:以NSException类型的未捕获异常终止

3 个答案:

答案 0 :(得分:0)

第一行还是第二行崩溃?为每个断点添加一个断点,然后单击继续按钮以检查哪个断点。

如果是前者,你的alloc / init中可能会有一些非法代码用于MoreViewController。

如果是后者,可能会有一些类/委托方法(viewDidLoad等)是罪魁祸首。

崩溃期间的错误消息是什么? (有时在Xcode中单击调试器中的resume-play-button可以在崩溃后显示更多内容。)

答案 1 :(得分:0)

我没有在您发布的代码中找到名为showSettings:的方法。你在名为showMore:的方法中推动你的viewController所以我认为,代码应该是这样的:

[moreButton addTarget:self action:@selector(showMore:)      forControlEvents:UIControlEventTouchUpInside];

请查看此内容。

答案 2 :(得分:0)

找不到 showSettings:方法的错误消息

Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSConcreteValue **showSettings:**]: unrecognized selector sent to instance 0x14e5ea70' 

我已通知你使用 showMore:作为方法的名称 - (void) showMore:(UIButton *)发件人

可能只是将showMore更改为showSettings,反之亦然