2011-08-11 46 views
1

我編寫了一個完整的應用程序,我正要將它提交給應用程序商店,並且在最後的測試中,我回過頭來添加了幾個版本以確保正確的內存管理。從那以後,我不斷收到這些隨機崩潰。我嘗試刪除一些或所有的發佈呼叫,我試過保留對象。我清理了這個項目。我用NSZombieEnabled,這也沒有幫助。所有這些都無濟於事。隨機崩潰和奇怪的控制檯輸出

大多數時候,控制檯說沒有提供幫助。通常應用程序加載,我把NSLogsviewDidLoad,viewDidAppearviewWillAppear,他們都顯示在控制檯,然後崩潰。

有時我也會得到EXC_BAD_ACCESS(我知道這意味着什麼)。但它隨機發生。所以這對我來說沒有意義。感謝您的幫助。我已經寫了這個應用程序,並花了幾個月的時間。所以我很困難。謝謝。

+0

你是否描述過殭屍? – Perception

+0

將NSZombieEnabled設置爲YES!只是搜索它 – Joe

+0

對不起,我忘了提及我做了NSZombieEnabled,並沒有得到任何地方。謝謝 – Andrew

回答

1

我同意魯迪。這聽起來像你正在釋放一些仍在使用中的東西。我會回到正在工作的版本,並開始一次添加一個版本,直到它導致崩潰。緩慢而有效的調試。

2

您是否嘗試過構建 - >分析?它會搜索你的代碼泄漏和其他你可能錯過的有用的東西。嘗試一下,看看它是否爲你找到任何東西。

1

當你說你「有時」得到EXC_BAD_ACCESS,你剩下的時間是什麼?崩潰堆棧表明你正在崩潰?你收到什麼信息?

隨機崩潰通常表示計時問題。一個常見原因是在多個線程上訪問事物。你是?它也可能意味着基於網絡流量的時間差異。

確保控制檯不指示異常而不是內存違例。通常在控制檯中有一些有用的東西。

+0

它不會崩潰的時候,它的工作方式就像它的susposted。我不使用任何線程,除了在這個應用程序的主要,這是沒有數據流。該控制檯要麼打印:訪問不良或「當前語言:自動;目前的Objective-C' – Andrew

+0

如果你看到EXC_BAD_ACCESS,那麼你應該有一個堆棧跟蹤,告訴你它發生了什麼。 –

+0

是的,這是我以前的經驗。但在這種情況下沒有。這就是爲什麼我很困惑 – Andrew