僵尸对象对于我们调试程序来说很有用,在XCode中打开僵尸对象的方法是设置NSZombieEnabled环境变量为YES,这导致所有的对象都不会被释放,程序跑起来会时间长了内存占用量很大,这次我们就要来写一些代码,模仿XCode中的实现,这样我们也能够大体上了解了XCode中实现僵尸对象的原理了。
Mike Ash在他的博客中已经解释了僵尸对象实现的细节,我在这里就算是翻译一下吧... (这些链接可能需要翻墙...)
OC中的对象都是结构体,结构体中第一个字段是一个isa,指向对象的类对象,类对象也是一个对象,也有一个isa指针,指向了Meta类对象,这里就不细说了,具体看CocoaWithLove中的解释。