iOS - OC 内存管理
1、OC 基本内存管理模型 1.1 自动垃圾收集 在 OC 2.0 中,有一种称为垃圾收集的内存管理形式。通过垃圾收集,系统能够自动监测对象是否拥有其他的对象,当程序执行需要空间的时候,不再被引用的对象会自动释放。iOS 运行环境并不支持垃圾收集,在这个平台开发程序时并没有这方面的选项。在 OS X 10.8 中垃圾收集已不再推荐使用。 1.2 自动释放池 自动释放池(autoreleasepool)的机制是它使得应用在创建新对象时,系统能够有效的管理应用所使用的内存。自动释放池可以追踪需要延时一些时间释放的对象。 OC 对象只需要发送一条 autorelease 消息,就会把这个对象添加到最近的自动释放池中。autorelease 实际上只是把对 release 的调用延迟了,对于每一次 autorelease,系统只是把该对象放入了最近的 autoreleasepool 中。当执行到 autoreleasepool 块的末尾时,系统会释放自动释放池,这将影响到所有发送过 autorelease 消息并添加到自动释放池中的对象,系统会对池中的每个对象发送 release 消息,当这些...