试题详情
简答题自动释放池是什么,如何工作?
  • 当您向一个对象发送一个autorelease消息时,Cocoa就会将该对象的一个引用放入到最新的自动释放池。它仍然是个正当的对象,因此自动释放池定义的作用域内的其它对象可以向它发送消息。当程序执行到作用域结束的位置时,自动释放池就会被释放,池中的所有对象也就被释放。
    1.ojc-c是通过一种"referring counting"(引用计数)的方式来管理内存的,对象在开始分配内存(alloC.的时候引用计数为一,以后每当碰到有copy,retain的时候引用计数都会加一,每当碰到release和auto release的时候引用计数就会减一,如果此对象的计数变为了0,就会被系统销毁.
    2.NSAutoreleasePool就是用来做引用计数的管理工作的,这个东西一般不用你管的.
    3.auto release和release没什么区别,只是引用计数减一的时机不同而已,auto release会在对象的使用真正结束的时候才做引用计数减一.
  • 关注下方微信公众号,在线模考后查看

热门试题