EXC_BAD_ACCES:這個異城荷基本上是內(nèi)存使用不當(dāng)造成的,而且90%的錯誤來源在于對一個已經(jīng)釋放的對象進行release操作。
不管什么時候當(dāng)你遇到EXC_BAD_ACCESS這個錯誤厅篓,那就基本上意味著你向一個已經(jīng)釋放的對象發(fā)送消息该贾。當(dāng)然也存在被損壞的指針。
當(dāng)該存儲器區(qū)域不再映射到您的應(yīng)用時性誉,即該內(nèi)存區(qū)域在你認為使用的時候卻沒有使用窿吩,該內(nèi)存區(qū)域是無法訪問的。 這時內(nèi)核會拋出一個異常( EXC )错览,表明你的應(yīng)用程序不能訪問該存儲器區(qū)域(BAD ACCESS) 纫雁。
調(diào)試EXC_BAD_ACCESS(使用僵尸調(diào)試模式)
在Xcode中,可以啟用僵尸對象倾哺,意味著被釋放的對象將會以僵尸的形式被保留轧邪。如果向僵尸對象發(fā)送消息,應(yīng)用程序?qū)捎贓XC_BAD_ACCESS而崩潰羞海。
方法一:單擊左上角的Edit Scheme忌愚,并選中Edit Scheme。
在上方打開 Diagnostics選項却邓。要啟用僵尸對象硕糊,勾選 Enable Zombie Objects選框。
Snip20160906_10.png
Snip20160906_12.png
方法二:添加 NSZombieEnabled YES
Snip20160906_13.png
如果你現(xiàn)在遇到EXC_BAD_ACCESS 腊徙,在Xcode的控制臺輸出简十,告訴你該從哪里查找問題。