在抛出“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' 的实例后调用终止