黑马程序员技术交流社区

标题: 谈谈自己对OC内存的理解,可能会在面试中用到 [打印本页]

作者: yibyli    时间: 2015-9-6 21:57
标题: 谈谈自己对OC内存的理解,可能会在面试中用到
本帖最后由 yibyli 于 2015-9-6 22:00 编辑

       OC不采用垃圾回收机制,而是采用引用计数的方式来管理内存,当引用计数为0的时候对象被销毁,当引用计数为1或者以上时,对象得以保持。
       在Xcode4.2版本以前是采用手工引用计数,具体是通过alloc,new,copy,mutableCopy,retain,release这个几个方法来更改对象的引用计数。其中alloc和new创建一个引用计数为1的对象,retain使对象的引用计数加1,release使对象的引用计数减去1,当对象的引用计数为0的时候会调用一个dealloc的方法销毁对象。
       手工引用计数采取的原则是谁负责创建,谁负责销毁,谁retain,谁负责release,道理虽然简单,但是内存管理随着代码的庞大还是很令人头痛。因此出现了自动引用计数,即所谓的ARC,由系统自动检测来保持对象和销毁对象。ARC引用了自动释放池,即在自动释放池中创建对象,当自动释放池被释放的时候,这些被创建的对象会自动被销毁。

希望有更好的答案,期待您的回答!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2