iOS保留计数的问题
幕后:保留计数
所有权策略是在调用retain
方法后通过引用计数—通常被称为“保留计数”—实现的。每个对象都有一个保留计数。
-
当您创建一个对象时,该对象的保留计数为1。
-
当您向一个对象发送
retain
消息时,该对象的保留计数加1。 -
当您向一个对象发送
release
消息时,该对象的保留计数减1。当您向一个对象发送
autorelease
消息时,该对象的保留计数会在将来的某个阶段减1。 -
如果一个对象的保留计数被减为0,该对象就会被回收(请参考“回收对象”)。
重要:通常您不必显式地查询对象的保留计数是多少(参考retainCount
)。其结果往往容易对人产生误导,因为您可能不知道您感兴趣的对象由何种框架对象保留。在调试内存管理的问题上,您只需要确保您的代码遵守所有权规则。
我记得很多人都在问,为什么我 retain里之后,retainCount是xxx,为什么不是xxx,
看到这里,我释然了。
由于笔者是一个苦逼的Java程序员转向iOS开发的
对内存管理一直都不明白,所以只能苦逼的严格按照苹果的指导,谁(创建,retain,copy)谁释放。
一直都不对retainCount进行研究。