iOS Developer

 EXC_BAD_ACCES报错调试

2016-09-06  本文已影响42人  轻云_

EXC_BAD_ACCES:这个异常基本上是内存使用不当造成的,而且90%的错误来源在于对一个已经释放的对象进行release操作。

不管什么时候当你遇到EXC_BAD_ACCESS这个错误,那就基本上意味着你向一个已经释放的对象发送消息。当然也存在被损坏的指针。

当该存储器区域不再映射到您的应用时,即该内存区域在你认为使用的时候却没有使用,该内存区域是无法访问的。 这时内核会抛出一个异常( EXC ),表明你的应用程序不能访问该存储器区域(BAD ACCESS) 。

调试EXC_BAD_ACCESS(使用僵尸调试模式)

在Xcode中,可以启用僵尸对象,意味着被释放的对象将会以僵尸的形式被保留。如果向僵尸对象发送消息,应用程序将会由于EXC_BAD_ACCESS而崩溃。

方法一:单击左上角的Edit Scheme,并选中Edit Scheme。
在上方打开 Diagnostics选项。要启用僵尸对象,勾选 Enable Zombie Objects选框。

Snip20160906_10.png Snip20160906_12.png

方法二:添加 NSZombieEnabled YES

Snip20160906_13.png

如果你现在遇到EXC_BAD_ACCESS ,在Xcode的控制台输出,告诉你该从哪里查找问题。

上一篇下一篇

猜你喜欢

热点阅读