4

我的应用程序出现随机错误,导致它崩溃。我面临的问题是 XCode 并没有告诉我崩溃发生在哪里,只有以下信息。有人可以告诉我如何找出可以在代码中找到问题的地方吗?它必须在应用程序崩溃的同一时间崩溃,它总是显示以下内容。

* 由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“-[__NSCFDictionary setObject:forKey:]:尝试插入零值(键:0)”*第一次抛出调用堆栈:(0x381e48bf 0x381e47b9 0x381e47db 0x381516bb 0x9237f 0x518 0x9237b 0x59 0x37b9d 0x8b68f 0x3550850f 0x381b0577 0x3813c0cf 0x3547c3fb 0x3547dc2b 0x8d005 0x3814322b 0x34495 0x32e31 0x3372d 0x30a59 0x3813e435 0x7b1df 0x7b88d 0x79e25 0x31ca650f 0x31ca5f01 0x31c8c4ed 0x31c8bd2d 0x37f12df3 0x381b8553 0x381b84f5 0x381b7343 0x3813a4dd 0x3813a3a5 0x37f11fcd 0x31cba743 0x89e8b 0x24a4)终止叫做抛出异常(LLDB)

4

5 回答 5

18

你打开异常断点了吗?单击Breakpoint Navigator 左下角的+ ,然后选择Add Exception Breakpont

在此处输入图像描述

您可以右键单击断点进行编辑...</p>

在此处输入图像描述

这将导致代码在发生错误的地方停止。

于 2012-05-31T09:26:47.970 回答
10

有一个我通常在我的项目中使用的解决方案,设置一些特殊的断点。要做到这一点:

  1. 打开 XCode
  2. 转到“查看 -> 导航器 -> 显示断点导航器”

现在单击“+”按钮添加一些新断点:

  • 添加异常断点
  • 用符号添加符号断点[NSException raise]
  • 用符号添加符号断点objc_exception_throw

再次运行您的项目,应用程序将在导致您的问题的行上停止。

于 2012-05-31T09:28:39.507 回答
0

错误很明显。在您为字典设置某些对象的任何一行中,您的键为 nill,这是不允许的

于 2012-05-31T09:26:19.967 回答
0

您的问题是您正在使用 setObject: forKey Method to NSDictionary 只需将其设为 NSMutableDictionary 然后尝试此方法您无法为 NSDictionary 分配值,就像您尝试仅针对 NSMutableDictionary 一样。

我希望你能明白我想说的话。

于 2012-05-31T10:50:29.457 回答
0

试试这个:

if([myDictionary objectForKey:@"string"]!= nil && [myDictionary objectForKey:@"string"]!= Nil) { }
于 2013-12-30T09:42:55.957 回答