美文网首页
NSAutoReleasePool

NSAutoReleasePool

作者: March_Cullen | 来源:发表于2017-03-03 16:35 被阅读0次

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

    1. OC是通过 referring counting ,引用计数,的方式来管理内存的。
      对象开始分配内存,调用 alloc 方法,retainCount = 1;每次 copy , retain , retainCount + 1;每次 release , autorelease , retainCount - 1;当 retainCount = 0,系统就会调用 dealloc 方法,销毁对象。

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

    3. autorelease 和 release 没什么区别,只是 retainCount - 1的时机不同而已,autorelease 会在对象的使用真正结束的时候才将retainCount - 1。


    如有不当、错误之处,欢迎指正!

    相关文章

      网友评论

          本文标题:NSAutoReleasePool

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