在抛出“NSException”(gdb)的实例后调用终止

Posted

技术标签:

【中文标题】在抛出“NSException”(gdb)的实例后调用终止【英文标题】:terminate called after throwing an instance of 'NSException' (gdb) 【发布时间】:2011-09-11 16:01:06 【问题描述】:

我已经制作了一个使用 6 个月且没有备份的应用。它在模拟器上运行良好,但在设备上它崩溃了。

这是错误代码:

2011-09-11 17:55:49.172 Apli[223:707] * 由于未捕获的异常“NSInternalInconsistencyException”而终止应用程序,原因:“无法在捆绑包中加载 NIB:'NSBundle / var/mobile/Applications/FC234696-314B-4328-94BF-A73506B8AB07/Apli.app>(已加载)',名称为'MainWindow''

*** Call stack at first throw:
(
    0   CoreFoundation                      0x3438664f __exceptionPreprocess + 114
    1   libobjc.A.dylib                     0x36879c5d objc_exception_throw + 24
    2   CoreFoundation                      0x34386491 +[NSException raise:format:arguments:] + 68
    3   CoreFoundation                      0x343864cb +[NSException raise:format:] + 34
    4   UIKit                               0x34b03a53 -[UINib instantiateWithOwner:options:] + 1110
    5   UIKit                               0x34b04e09 -[NSBundle(UINSBundleAdditions) loadNibNamed:owner:options:] + 92
    6   UIKit                               0x3492f4cd -[UIApplication _loadMainNibFile] + 96
    7   UIKit                               0x34929b09 -[UIApplication _runWithURL:payload:launchOrientation:statusBarStyle:statusBarHidden:] + 180
    8   UIKit                               0x348fe7d7 -[UIApplication handleEvent:withNewEvent:] + 1114
    9   UIKit                               0x348fe215 -[UIApplication sendEvent:] + 44
    10  UIKit                               0x348fdc53 _UIApplicationHandleEvent + 5090
    11  GraphicsServices                    0x33a56e77 PurpleEventCallback + 666
    12  CoreFoundation                      0x3435da97 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 26
    13  CoreFoundation                      0x3435f83f __CFRunLoopDoSource1 + 166
    14  CoreFoundation                      0x3436060d __CFRunLoopRun + 520
    15  CoreFoundation                      0x342f0ec3 CFRunLoopRunSpecific + 230
    16  CoreFoundation                      0x342f0dcb CFRunLoopRunInMode + 58
    17  UIKit                               0x34928d49 -[UIApplication _run] + 372
    18  UIKit                               0x34926807 UIApplicationMain + 670
    19  Apli                                 0x00002bb3 main + 82
    20  Apli                                0x00002b5c start + 40
)
terminate called after throwing an instance of 'NSException'
(gdb) 

【问题讨论】:

【参考方案1】:

检查您的 MainWindow.XIB 文件是否仍在您的项目中,并且特别是检查是否包含在您的目标中

我猜您的 MainWindow.xib 未检查以包含在您的最终 Apli.app 包中,这就解释了为什么在您的 Bundle 中找不到它。

如果您没有“清理”您以前的应用程序版本,则您编译的应用程序包的以前版本(包括 MainWindow.xib 文件)可能仍存在于您的模拟器中,这解释了为什么模拟器仍能找到它。 (如果您从“构建”菜单中“清除所有目标”,然后在模拟器上重建您的应用程序,我敢打赌模拟器也找不到您的 XIB 文件)

【讨论】:

感谢您的回复。我已经完成了产品 > 清洁,但它不起作用。 MainWindows 在我的信息列表和项目中。我现在能做什么?谢谢。这是真的......我没有在我的项目的早期版本中清理过目标。 如果您仍在使用 Xcode 3.2,只需在项目中的 MainWindow.xib 文件中获取信息 (Command-I),然后转到“目标”选项卡。在那里,确保选中 Target 前面的复选框。如果您使用 Xcode4,则文件的目标成员资格位于右侧面板中,位于代表文档图标的选项卡下。 好的,MainWindows 在我的目标中。主 nib 文件基本名称 MainWindow.xib 但它仍然给我错误,我也在 mainwindows 中做了一些更改,在模拟器中它也发生了变化 抱歉没有真正理解您最后的评论?如果你清理了所有的目标,你怎么能看到模拟器的变化? MainWindow 它在 plist 文件中设置。我清理了目标,现在它在模拟器上不起作用。谢谢

以上是关于在抛出“NSException”(gdb)的实例后调用终止的主要内容,如果未能解决你的问题,请参考以下文章

在抛出 'std::length_error' 的实例后调用终止

在抛出 'std::system_error' 的实例后调用终止

导入 tensorflow 错误:在抛出“Xbyak::Error”实例后调用终止

在抛出 'std::length_error' 的实例后调用终止

在抛出 'std::system_error 的实例后调用终止

关于在抛出 'std::length_error' 实例后调用终止