首页 > 其他 > 详细

内存管理之retain计数

时间:2016-02-16 09:58:28      阅读:183      评论:0      收藏:0      [点我收藏+]

  假如使用alloc、new开头或者包含copy函数的方法来创建一个对象,你就拥有了这个对象的所有权。(假如新对象的retain计数为1,并且不在自动释放池里,那么,你就有义务在不用这个对象的时候释放它)。传递对象所有权一些常见的方法是alloc(也经常会跟着init方法),copy和mutableCopy。

  通过其他方式创建的对象,就不一定拥有这个对象的所有权。(新对象的retain计数为1,放在自动释放池中,如果在自动释放池被清空之前,该对象被retain了,那就不会被释放了,否则,这个对象肯定会被释放)。

  加入并不拥有一个对象的所有权,却想让它一直存在,可发生retain消息来获得所有权(这步操作增加了retain计数)

  当有一个对象的所有权,但后面不再需要它时,可发生release和autorelease消息。(release消息立即减少retain计数;autorelease消息只在自动释放池被清空的时候引起release消息的发生。)

  只有对象还有一个所有者,这个对象就不会被释放。(当retain计数变为0时,就发送dealloc消息)

 

内存管理之retain计数

原文:http://www.cnblogs.com/PJXWang/p/5191761.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!