使用Xcode查找错误 – 尝试插入nil值

我在我的应用程序中得到一个随机错误,这导致它崩溃。 我面对的问题是XCode不会告诉我崩溃发生在哪里只有下面的信息。 有人可以告诉我如何find我可以在代码中find问题的地方吗? 它必须崩溃在应用程序崩溃的同时,它总是显示下面。

*终止应用程序由于未捕获的exception“NSInvalidArgumentException”,原因:' – [__ NSCFDictionary setObject:forKey:]:尝试插入nil值(键:0)'*第一个抛出调用堆栈:( 0x381e48bf 0x37d301e5 0x381e47b9 0x381e47db 0x381516bb 0x9237b 0x91121 0x8f0c5 0x8abc1 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)终止叫做抛出exception(LLDB)

你打开exception断点 ? 点击Breakpoint Navigator左下angular的+ ,然后selectAdd Exception Breakpont

在这里输入图像说明

你可以右键点击断点来编辑它…

在这里输入图像说明

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

有一个解决scheme,我通常使用我的项目,build立一些特定的断点。 要做到这一点:

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

现在点击“+​​”button添加断点:

  • 添加exception断点
  • 用符号“[NSException raise]”添加符号断点
  • 用符号“objc_exception_throw”添加符号断点

再次运行您的项目,应用程序将停止与您的问题的原因。

错误是足够明显的。 在你的任何一行中,在你设置字典对象的地方,你的关键字是nill,这是不允许的

你的问题是,你正在使用setObject:forKey方法来NSDictionary只是让它NSMutableDictionary然后尝试这种方法,你不能为NSDictionary分配值,就像你正在尝试它只为NSMutableDictionary。

我希望你能明白我的意思。

尝试这个:

if([myDictionary objectForKey:@"string"]!= nil && [myDictionary objectForKey:@"string"]!= Nil) { }