美文网首页知识点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-自动释放池是什么,工作原理

    当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然...

  • Objective-C内存篇(三) - Autorelease

    什么是自动释放池 自动释放,也是延迟释放。自动释放池的实现原理或者说作用:在自动释放池被销毁或耗尽时,会向池中的所...

  • 自动释放池工作原理

    自动释放池什么时候创建,什么时候销毁? 每一次运行循环执行后,也就是每当事件被触发时都会创建自动释放池。在...

  • 自动释放池工作原理

    自动释放池是NSAutorelease类的一个实例,当向一个对象发送autorelease消息时,该对象会自动入池...

  • autoReleasePool 原理

    (一)自动释放池的原理, 自动释放池是由多个autorelease page组成的双向链表,其中主要通过pus...

  • iOS精选面试题③

    1、自动释放池是什么,如何工作 自动释放池是NSAutorelease类的一个实例,当向一个对象发送autorel...

  • 复习总结3 自动释放池 & 优化

    自动释放池原理 Autorelease pool自动释放池,是OC的一种内存自动回收机制,可以将放入的临时变量统一...

  • iOS底层原理 - 内存管理 之 autorelease

    面试题引发的思考: Q: 自动释放池autoreleasepool底层原理介绍: 自动释放池的主要底层数据结构是:...

  • iOS内存管理4-autorelease自动释放池

    临时变量什么时候释放自动释放池的原理自动释放池能否嵌套使用 使用xcode创建一个project在创建的时候有会生...

  • 自动释放池原理

    1.什么是自动释放池 自动释放池(autorelease pool)是OC的一种内存自动回收机制。当你向一个对象发...

网友评论

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

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