标签:
Cocoa采用一种称为引用计数的技术,有时也叫保留计数。每个对象有一个与之相关联的整数,称作它的引用计数器或保留计数器。当某段代码需要访问一个对象时,该代码将该对象的保留计数器加1,表示“我要访问该对象”。当这段代码结束对象访问时,将对象的保留计数器值减1,表示它不再访问该对象。当保留计数器值为0时,表示不再有代码访问该对象了,因此对象将被销毁,其占用的内存被系统回收以便重用。
当使用alloc,new方法或者通过copy消息(生成接收对象的一个副本)创建一个对象时,对象的保留计数器值被设置为1.要增加对象的保留计数器值,可以给对象发送一条retain消息,要减少对象的保留计数器值,可以给对象发送一条release消息。
当一个对象因其保留计数器归0而即将被销毁时,Object-C自动向对象发送一条dealloc消息。你可以在自己的对象中重写dealloc方法,可以利用Object-C在需要销毁对象时,调用dealloc方法。要获得保留计数器的当前值,可以发送retainCount消息。
retain方法返回一个id类型的值。通过这种方式,可以嵌套执行带有其他消息发送参数的保留调用,增加对象的保留计数器值并要求对象完成某种操作。例如,[[car retain] setTire:tire atIndex:2];表示要求car对象将其保留计数器值加1并执行setTire操作。
标签:
原文地址:http://www.cnblogs.com/yang-guang-girl/p/4322133.html