2011-07-28 123 views
0

我的應用程序崩潰時,我退出它(不按主頁按鈕,並轉到背景),我想問題是,一些對象在viewDidUnload中釋放,再次釋放dealloc,但我不知道。由於我的代碼有超過10000行,是否有任何工具或方法可以快速查明錯誤?還是它是由其他東西引起的,而不是一個物體被釋放兩次?iOS應用程序在退出時崩潰,如何調試?

謝謝!

這裏是左窗格中的截圖:

When crashes

另外,我嘗試登錄viewDidUnload和dealloc的消息,但沒有看到任何錯誤消息。

- (void)viewDidUnload { 
    print "viewDidUnload 1"; 
    // actual method body 
    print "viewDidUnload 2"; 
} 

與dealloc相同。

編輯2: 我的應用程序使用核心數據,所以有什麼我需要手動完成退出核心數據(或它會崩潰)?

+0

調試終止日誌會有幫助。 –

+0

請發佈錯誤的控制檯輸出 –

回答

3

在真實設備上進行測試 - 如果應用程序崩潰,則會生成崩潰日誌。它將在XCode的Organizer窗口設備日誌中對應於您的設備。

該日誌會給你崩潰的調用堆棧,可能縮小你需要搜索的地方。

0

很難說如果你沒有發佈任何代碼。

你有沒有崩潰記錄?

你如何在viewDidUnload發佈?

[_mayVar release];    // 1. on its own this will most likely cause a crash 

[_mayVar release]; _myVar = nil; // 2. This is better as sets the pointer to nil 

self.myVar = nil;    // 3. If you use properties this is easier than line 2 
+0

謝謝,我已經上傳了截圖。 – hzxu

+0

您是否認爲如果我在真實設備而不是模擬器上測試它,我會看到更詳細的結果? – hzxu

0

我有同樣的問題,並在真實的設備上運行它表明它在FlurryAnalytics崩潰。你用那個嗎? 我不得不從項目中完全刪除它(不僅不會開始會話!)來修復這個崩潰。