2012年11月13日 星期二

iOS學習_如何較易找到exc_bad_access錯誤的源頭

"exc_bad_access"是一個令人惱羞的錯誤訊息,出現的原因是“使用了已經釋放記憶體的變數”,如果你很希望好操作程式的記憶體,那就很可能在觀念不清楚的狀態下一直遇到這一個錯誤。

而之所以說很令人惱羞,log並不會顯示任何資訊來供我們判斷,這時可在環境變數中增加一個參數(NSZombieEnabled),來增加判斷的資訊。

步驟:
1. 於選單Product選擇Edit Scheme。

2. 於Arguments的Environment Variables增加參數NSZombieEnabled,並設定為YES。

這時就可以看到錯誤時會多出一句相關錯誤的log。(EX:[__NSArrayM count]: message sent to deallocated instance 0x9bb5620)
然後再配合Xcode左側的Thread列表,來查找可能的位置與原因。
方法

沒有留言:

張貼留言