Apple 的Advanced Memory Management 文档写得很好而且很精确,但我想知道它的图表:
(我的是当前版本 2011-09-28)
图中 and 之后alloc
,init
引用计数(或保留计数)为 1,这是基本的内存管理规则。之后retain
,引用计数现在是 2。然后 C 类向copy
对象发送消息,之后,对象的引用计数仍然为 2。新对象的引用计数为 1。
到目前为止这符合规则,但是接下来,在图的顶部,A 类向release
对象发送消息,引用计数应该是 1?该图有一个 2 代替。然后 B 类也向release
对象发送消息,现在引用计数应该为 0。图中显示的是 1。这是正确的,或者可能有不同的方式来阅读图表,或者上面的某些概念不正确?