美文网首页知识点ios面试题程序员
41-自动释放池是什么,工作原理

41-自动释放池是什么,工作原理

作者: 评评分分 | 来源:发表于2015-09-10 07:38 被阅读1428次

    当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。


    1.  ojc-c是通过一种"referring counting"(引用计数)的方式来管理内存的,对象在开始分配内存(alloc)的时候引用计数为一,以后每当碰到有copy,retain的时候引用计数都会加一,每当碰到release和autorelease的时候引用计数就会减一,如果此对象的计数变为了0,就会被系统销毁.

    2. NSAutoreleasePool就是用来做引用计数的管理工作的,这个东西一般不用你管的.

    3. autorelease和release没什么区别,只是引用计数减一的时机不同而已,autorelease会在对象的使用真正结束的时候才做引用计数减一.

    相关文章

      网友评论

        本文标题:41-自动释放池是什么,工作原理

        本文链接:https://www.haomeiwen.com/subject/iqdpcttx.html