iOS保留计数的问题

幕后:保留计数

所有权策略是在调用retain方法后通过引用计数—通常被称为“保留计数”—实现的。每个对象都有一个保留计数。

  • 当您创建一个对象时,该对象的保留计数为1。

  • 当您向一个对象发送retain消息时,该对象的保留计数加1。

  • 当您向一个对象发送release消息时,该对象的保留计数减1。

    当您向一个对象发送autorelease消息时,该对象的保留计数会在将来的某个阶段减1。

  • 如果一个对象的保留计数被减为0,该对象就会被回收(请参考“回收对象”)。

重要:通常您不必显式地查询对象的保留计数是多少(参考retainCount)。其结果往往容易对人产生误导,因为您可能不知道您感兴趣的对象由何种框架对象保留。在调试内存管理的问题上,您只需要确保您的代码遵守所有权规则。

我记得很多人都在问,为什么我 retain里之后,retainCount是xxx,为什么不是xxx,

看到这里,我释然了。

由于笔者是一个苦逼的Java程序员转向iOS开发的

对内存管理一直都不明白,所以只能苦逼的严格按照苹果的指导,谁(创建,retain,copy)谁释放。

一直都不对retainCount进行研究。

posted @ 2012-03-10 23:09  dcty  阅读(249)  评论(0编辑  收藏  举报