Iphone 如果我向集合发送-release消息,集合是否会向它持有的所有对象发送-release消息?

Iphone 如果我向集合发送-release消息,集合是否会向它持有的所有对象发送-release消息?,iphone,cocoa-touch,memory-management,uikit,Iphone,Cocoa Touch,Memory Management,Uikit,我一直在读,如果一个集合“被释放”,它也会释放它的所有对象。另一方面,我也读到一个集合一旦被释放就会释放它的对象 但正如苹果所说,最后一件事可能并不总是发生。系统决定是否可以取消分配。在大多数情况下会,但在某些情况下不会 所以我想知道一个集合是否会导致这样的内存泄漏? 当它在向集合本身发送一条释放消息时释放了它的所有对象,那么它实际上应该在我保留集合本身时就保留集合内部的所有对象 帮我弄清楚这件事。谢谢 将对象添加到集合时,该对象将由集合保留,直到移除或取消分配该集合。发送到集合的后续保留或释放

我一直在读,如果一个集合“被释放”,它也会释放它的所有对象。另一方面,我也读到一个集合一旦被释放就会释放它的对象

但正如苹果所说,最后一件事可能并不总是发生。系统决定是否可以取消分配。在大多数情况下会,但在某些情况下不会

所以我想知道一个集合是否会导致这样的内存泄漏? 当它在向集合本身发送一条释放消息时释放了它的所有对象,那么它实际上应该在我保留集合本身时就保留集合内部的所有对象


帮我弄清楚这件事。谢谢

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


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

将对象发送到发行版会降低其保留计数。当它的保留计数达到零时,它就被销毁了。当容器被销毁(未释放)时,它的对象被释放(但如果它们的保留计数因其他原因而非零,则不会被销毁)


简短回答:这一切都会按照您预期的方式进行,您的问题是您将“released”视为“destromed”的意思。它们是不同的。

关于内存管理的上帝之言: