29、理解引用计数
对象回收后,系统会降其占用的内存标记为“可重用”(reuse)。
如果按“引用数”回溯,那么最终会发现一个“根对象”(root object)。在iOS应用程序中,则是UIApplication对象,是程序启动时创建的单例。
调用autorelease会在稍后递减计数,通常是在下一次“事件循环”(event loop)时递减,不过可能会执行得更早一些。此方法可保证对象在跨越“方法调用边界"(method call boundary)后一定存活。(实际上,释放操作会在清空最外层的自动释放池时执行,除非你有自己的自动释放池,否则这个时机指的是当前线程的下一次事件循环。)
要点:
引用计数机制通过可以递增递减的计数器来管理内存。对象创建好之后,其保留计数至少为1。若保留计数为正,则对象继续存活。当保留计数降为0时,对象就被销毁了。
在对象生命期中,其余对象通过引用来保留或释放此对象。保留与释放操作分别会递增及递减保留计数
Last updated
Was this helpful?