调试 - [NSCFDictionary setObject:forKey:]:尝试插入nil值

时间:2011-04-22 03:42:28

标签: iphone objective-c cocoa macos

我对我的项目进行了一些更改,现在我在运行应用程序时收到了上述信息,而不是如何调试它。 我已阅读 here ,我必须在-[NSCFDictionary setObject:forKey:]中设置一个断点并设置条件。

但是,我如何设定他们提到的条件? (仅在值为nil时停止)我在Xcode4上,并且在尝试设置断点时才会显示此窗口。

目前它在每-[NSCFDictionary setObject:forKey:]停止,这不是很有帮助,因为即使在正确的通话和Apple的内部通话中也会停止(太多了!)

enter image description here

2 个答案:

答案 0 :(得分:9)

删除该断点并添加一个Exception断点。这将停止任何异常(例如尝试将nil插入字典)。最好在所有调试会话中保留此断点,这样即使间歇性异常(那些难以发现的问题)也会在调试器发生时被捕获。

要添加异常断点,请单击断点列表底部的添加(+)按钮,然后单击添加异常断点。保持按原样配置。

答案 1 :(得分:0)

如果您已将其缩减为呼叫站点,则只需编写:

assert(object);
[dictionary setObject:object forKey:key];