如果我发送一个 - 发布的话,集合是否会向它拥有的所有对象发送--release消息?

Tha*_*nks 2 iphone cocoa-touch memory-management uikit

我一直在读,如果一个集合"被释放"它也会释放它的所有对象.另一方面,我还读到,一旦集合被解除分配,集合就会释放它的对象.

但最后一件事可能并非总是如苹果所说.系统决定是否解除分配是好的.在大多数情况下,它会,但在某些情况下不会.

所以我想知道一个集合是否会导致这样的内存泄漏?当它确实发布了 - 它的所有对象发送到集合本身的-release消息时,它应该实际上 - 一旦我获得集合本身就保存集合中的所有对象.

帮助我清楚地了解这一点.谢谢!

Mar*_*eau 8

将对象添加到集合时,集合将保留该对象,直到将其删除或取消分配集合为止.发送到集合的后续保留或释放消息不会更改集合中对象的保留计数.

换句话说,从所有权的角度考虑它,而不是计算保留.