我試圖其中一個對象被釋放了太多次,然後由事件循環釋放到調試問題。下次嘗試從對象中讀取時,應用程序會與EXC_BAD_ACCESS一起崩潰。儀表不顯示我真正的引用計數
要調試,我讓NSZombies,然後使用與儀器的殭屍輪廓。然後我到了那裏我的應用程序崩潰和儀器告訴我有關消息被髮送到一個釋放的實例點。到現在爲止還挺好。
它向我展示了UIKit等庫在哪裏釋放並保留指向我的對象的指針,但它不會告訴我我自己的代碼在哪裏執行此操作。它也沒有顯示真實的參考計數。由該儀器表示,引用計數是1時,引用計數實際上是8根據在gdb打印出的引用計數。
我調查了儀器過濾輸出的可能性,但它似乎是我真的記錄每個版本並保留事件。這是絕對必須的東西在我的應用程序,因爲我的視圖控制器顯示,這意味着試圖做任何會發送消息到控制器將崩潰之後立即釋放。
在dealloc方法中放置了一個斷點之後,我發現我的對象確實被事件循環解除了分配,所以這不是一個流氓調用dealloc的情況。
後的代碼,你正在實例化ViewController。 – 2012-03-05 18:59:53