由于未捕获的异常/ / SIGABRT // C ++而终止应用程序

时间:2010-02-26 14:11:57

标签: iphone objective-c termination sigabrt

当我收到此消息时,我刚刚完成了一个应用程序。我不能为我的生活弄清楚什么是错的。

    (gdb) continue
2010-02-26 14:05:51.443 BrainTester[2638:207] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIViewController _loadViewFromNibNamed:bundle:] was unable to load a nib named "SplitSecondViewController"'
2010-02-26 14:05:51.452 BrainTester[2638:207] Stack: (
    861696817,
    860329709,
    861252493,
    861252395,
    835170725,
    835170141,
    835074651,
    13515,
    834774231,
    834773467,
    835014237,
    835012689,
    835011495,
    861063661,
    861449261,
    861447005,
    834770767,
    834765939,
    11025,
    10920
)
terminate called after throwing an instance of 'NSException'
Program r

收到信号:“SIGABRT”。 (gdb)

如果有人可以提供帮助,我们将不胜感激。

5 个答案:

答案 0 :(得分:0)

你显然抛出了一个NSInvalidArgumentException而没有被捕获,因此调用std :: terminate()并结束程序。不熟悉iPhone SDK,我真的无法提供更多帮助。请查阅API文档以查看它可能被抛出。

如果我对Objective-C ++语法的读取是正确的,则错误消息表明对象UIViewController无法使用参数SplitSecondViewController执行消息_loadViewFromNibNamed。

抱歉,我帮不了多忙......

答案 1 :(得分:0)

SplitSecondViewController.nib是否已添加到项目中并且是否在普通目录中?

此外,这是一个Objective-C异常,而不是C ++异常。

答案 2 :(得分:0)

重命名nib文件但不通过项目传播名称更改时,可能会发生这种情况。自上次成功运行应用程序以来,您是否重命名了SplitSecondViewController?

或者,如果您在某个阶段删除了SplitSecondViewController,则可能仍会在项目的其他位置引用它。打开界面构建器并转到主窗口的连接检查器。如果您在某个阶段删除了SplitSecondViewController,请确保删除了连接检查器中与它的连接。

答案 3 :(得分:0)

在Xcode中查看“Targets” - > YourAppName->复制捆绑资源

那里存在xib-File吗?

答案 4 :(得分:0)

我有同样的问题,马里奥的答案为我解决了。我正在转换iPhone应用程序,以便在手机和iPad上工作。由于某种原因,它没有将新的xib文件放入目标下的Copy Bundle Resources中。一旦我通过从Resources-iPad目录中拖动XIB文件来添加它,它就修复了所有内容。

谢谢,马里奥!