虽然
iOS 5.0 版本之后加入了 ARC 机制,由于相互引用关系比较复杂时,内存泄露还是可
能存在。所以了解原理很重要。
这里讲述在没有
ARC 的情况下,如何使用 Instruments 来查找程序中的内存泄露,以及
NSZombieEnabled 设置的使用。
本文假设你已经比较熟悉
Obj-C 的内存管理机制。
实验的开发环境:
XCode 4.5.2
1、运行 Demo。
先下载一个实现准备好的内存泄露的
Demo 吧:
下载下来,打开运行,程序是一个寿司的列表,列出各种寿司卷。试着选择里面的几行,应
该是选第二行的时候就崩溃了。
在崩溃的地方断住了,知道
crash 的地方了,但是不知道具体 crash 的原因。
2、设置 NSZombieEnabled
这是一个
“EXC_BAD_ACCESS”错误。
设置步骤:
1
我们打开
XCode 的选项:“NSZombieEnabled” 。在 crash 时可能会给你更多的一些提示信息。
2:勾上红色框里的