2013-04-02 89 views
3

這可能聽起來像一個愚蠢的問題,但是隨着iOS 6 viewDidUnload不再被調用,我對如何正確終止當前正在開發設備上使用xCode調試的iOS應用感興趣。是否足夠低於停止按鈕?如何正確停止當前正在運行的xCode項目?

enter image description here

時發生了什麼,我打那個按鈕?這是相當於嚮應用程序發送停止信號,立即終止應用程序? 是否有任何dealloc代碼被調用?我問的原因是,經過反覆調試開始/停止後,我遇到了一個問題,就好像我的應用程序出現隨機存儲器問題(沒有檢測到泄漏與分析)。

感謝您的想法!

回答

5

命中停止立即殺死應用程序。沒有dealloc或其他代碼被調用(特別是沒有你的應用程序委託方法,可能會保存數據),該過程只是終止。該進程使用的所有內存都將被釋放,當您重新啓動時,您將從頭開始。

這不太可能是「隨機存儲器」問題的原因。如果您可以提供有關您所遇到的症狀的更多細節,則可以多說。

模擬用戶可能做的最好方法是點擊主頁按鈕,,然後停止該過程。這並不會終止你的應用程序,但你應該在進入後臺時處理所有必要的事情。

+0

這裏描述問題。 http://stackoverflow.com/questions/15673536/ipad-ios6-very-long-delay-between-viewwillappear-and-view-appearing-on-the-scre你對內存的評論讓我覺得這也可能是由核心數據中的某些內容在突然終止後試圖自行修復(我正在使用RestKit) –

+0

根據我的經驗,核心數據在會話之間非常棘手。如果向表中添加行或對象,通常需要在模擬器上刪除應用程序,或從應用程序欄執行iOS Simulator> Reset Content and Settings。 – Heckman

+0

當您在設置時出現錯誤時,您可以刪除持久性存儲。節省大量的時間,並且可能無論如何您都可以在生產代碼中使用它。 – jrturton

3

ApplicationWillTerminate一旦應用程序正常終止,就會被調用。如果你點擊停止按鈕,你的應用程序就會被終止,你可能不會跟蹤任何方法調用。由於UIViewController沒有viewDidUnloaddealloc方法,但是您可以在不調用超級dealloc的情況下定義自己的dealloc方法。您可以查看Application life Cycle。它可能會回答很多問題。

相關問題