在碰到allocWithZone, copyWithZone总会有个疑问,这个NSZone到底是个什么东西?
简单来说,可以想象成一个内存池,alloc或是dealloc这些操作,都是在这个内存池中操作的。
cocoa总是会配置一个默认的NSZone,任何默认的内存操作都是在这个“zone”上操作的。默认的NSZone的缺陷在于,它是全局范围的,时间一长,必然会导致内存的碎片化,如果你需要大量的alloc一些object,那么性能就会受到一些影响。
所有cocoa提供方法,你可以自己生成一个NSZone,并将alloc, copy全部限制在这个”zone“之内。
详细的内容参考这篇文章:
http://www.cocoadev.com/index.pl?NSZone
【原文:http://maccrazy.diandian.com/post/2011-10-11/5711905】