内存泄漏过度释放检測
假设出现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前面的勾去掉。由于它们会使得内存不会被释放.