0

嘿,当我推送另一个视图控制器时,我在 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 时间旅行[1591:60b] 应用程序窗口预计将在应用程序启动结束时具有根视图控制器 2013-09-25 18:16:05.179 时间旅行[1591:60b] -[NSConcreteValue showSettings:]:无法识别的选择器发送到实例 0x14e5ea70 2013-09-25 18:16:05.181 Time Travel[1591:60b] * 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:'-[NSConcreteValue showSettings:] : 无法识别的选择器发送到实例 0x14e5ea70' *First throw call stack: (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: terminating with uncaught exception of type NSException

4

3 回答 3

0

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

如果是前者,则在您的分配/初始化中可能有一些非法代码用于 MoreViewController。

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

崩溃期间的错误消息是什么?(有时在 Xcode 的调试器中单击恢复播放按钮可以在崩溃后显示更多信息。)

于 2013-09-26T01:07:20.503 回答
0

错误消息说showSettings: method is not found

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

我已经通知您正在使用showMore:作为方法的名称 -(void) showMore: (UIButton *)sender

也许只是将 showMore 更改为 showSettings,反之亦然

于 2013-09-26T06:34:03.067 回答
0

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

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

请检查这个。

于 2013-09-26T06:17:37.690 回答