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

Pet*_*ter 4 iphone debugging xcode ios xcode4.3

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

*由于未捕获的异常'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)终止叫做抛出异常(LLDB)

Ash*_*lls 17

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

在此输入图像描述

您可以右键单击断点进行编辑...

在此输入图像描述

这将导致代码在发生错误的位置停止.


Mar*_*ace 10

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

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

现在添加一些新的断点,点击"+"按钮:

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

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