如果出现exc_bad_access错误,基本上是由于内存泄漏,错误释放,对一个已经释放的对象进行release操作。但是xcode有时候不会告诉你错误在什么地方(Visual Studio这点做得很好)。不过我们可以通过设置xcode环境变量环境变量NSZombieEnabled,MallocStackLogging查看错误的来源:
设置xcode环境变量NSZombieEnabled,MallocStackLogging的步骤,以Xcode4.5为例子:
1.点击XCode的Product菜单,选择Edit Scheme...选项
2.选择左侧的Run...,右边点击Arguments
3.在Environment Variables栏里,添加NSZombieEnabled,value为YES;再添加MallocStackLogging,value为YES;
如下图所示:
以上选项只能在模拟器上有效,如果你改变了iOS的版本,需要重新设定。
调试结束后,最好记得把环境变量NSZombieEnabled,MallocStackLogging前面的勾去掉,因为它们会使得内存不会被释放.