2011-04-22 43 views
4

我已經對我的項目做了一些更改,現在我在運行應用程序時得到了上面的消息,而不知道如何調試它。 我已閱讀here我必須在-[NSCFDictionary setObject:forKey:]中設置一個斷點並設置一個條件。調試 - [NSCFDictionary setObject:forKey:]:嘗試插入nil值

但是,如何設置他們提到的條件? (僅當值爲零時停止)我在Xcode4上,只有在試圖設置斷點時纔會獲得此窗口。

目前停靠在每-[NSCFDictionary setObject:forKey:]這是不是非常有幫助的,因爲它會停止,即使在正確的呼叫和蘋果公司的內部呼叫,以及(太多了!)

enter image description here

+0

讓應用程序崩潰時,它試圖插入nil.If調試器控制檯沒有幫助..去〜/庫/Logs/DiagnosticReports/YourApp.crash(找到最新的崩潰),並找出堆棧跟蹤哪部分代碼導致它(從線程崩潰) – 0x8badf00d 2011-04-22 04:14:19

+0

Mac應用程序不會崩潰...它根本不是應該如此行爲是。 – nacho4d 2011-04-22 04:38:01

+0

我的意思是「我的」而不是「Mac」 – nacho4d 2011-04-22 09:21:45

回答

9

刪除斷點,並添加例外斷點。這將停止任何異常(例如嘗試將nil插入到字典中)。在所有調試會話中保留此斷點是一種很好的做法,這種方式即使是間歇性異常(這些難以發現的問題)也會在調試器發生時立即捕獲。

要添加異常斷點,請單擊斷點列表底部的添加(+)按鈕,然後單擊添加異常斷點。保持原樣配置。

0

如果您有它減少到調用點,可以簡單的寫:

assert(object); 
[dictionary setObject:object forKey:key]; 
相關問題