2010-02-18 164 views
1

我一直在使用NSZombieEnabled來跟蹤BAD_ACCESS錯誤。由於錯誤我得到返回:使用NSZombieEnabled進行調試

*** -[MyDocument respondsToSelector:]: message sent to deallocated instance 0x2671b0 

我不知道這意味着什麼,但我奇怪的是,我沒有在任何地方調用這個函數,而不是在MyDocument.m也沒有任何進口files.To確切的說,在我的整個項目中,我都不會這樣稱呼它。調試器不會去導致錯誤的實際代碼,但只顯示彙編代碼,當我點擊它時,會給我,甚至更大的不可理解的數字列表。

有沒有人有一個想法,這個奇怪的「respondsToSelector」可能來自哪裏?也許從我使用的框架?我很困惑。

感謝您的幫助!

+0

解決了問題。測試了哪個dealloc導致了錯誤並將其刪除。它現在工作正常。我仍然很驚訝它從哪裏得到了「respondsToSelector」。 – Pripyat 2010-02-18 19:59:12

回答

3

respondsToSelector:被廣泛用於框架。例如,如果您的類是委託或數據源(很可能是MyDocument),委託對象將使用它來確定您支持的代理方法。

一般來說,查找這種問題發生的方法是在objc_exception_throw()(Run-> Show-> Breakpoints,雙擊它所說的「Double-Click for Symbol」)上設置一個斷點,鍵入objc_exception_throw)並在調試器(Build-> Build and Debug - Breakpoints On)下運行。