当保留NSArray的子​​节点并且阵列被释放时会发生什么?

时间:2011-01-22 12:04:51

标签: objective-c nsarray

假设我从NSArray中读取一个对象并保留该对象。然后我完成NSArray并释放它。 NSArray现在的保留计数为零。是否已取消分配或者是否会被强制保留,直到子对象被解除分配?

基本上我要问的是,当孩子被保留一段时间但是不需要阵列时我是否需要复制孩子而不是保留它?

我认为保留是好的,NSArray将被解除分配,但我想确定。

1 个答案:

答案 0 :(得分:5)

因为您在NSArray中保留了该对象(与数组中的其他对象相比),其保留计数为2。 (一个来自NSArray,一个来自你。)

因此,当NSArray被释放时,您的对象仍将具有一个保留计数,因此在自动释放池清空后仍然存在。 (当然你要发布它。)