再次是我的数组数组......
当我的数组“x”包含数组“y”的多个实例时,如何清除/释放它而不冒内存泄漏的风险?
以下调用是否足够?
(a) 清除数组
[x removeAllObjects];
(b) 释放数组
[x release];
或者我是否需要枚举数组,例如:
(c) 清除数组
for(int i=0;i<x.count;i++)
[[x objectAtIndex:i] release];
[x removeAllObjects];
(d) 释放数组
for(int i=0;i<x.count;i++)
[[x objectAtIndex:i] release];
[x release];
提前致谢
最佳答案
(b) 应该足够了。数组的释放器将释放所有包含的对象,并为每个保留释放一次(因此多个实例将被释放与添加的次数一样多)。
永远不要执行[[x objectAtIndex:i] release]
——您还没有保留返回的对象,因此释放它会破坏它的保留计数。
关于objective-c - 清除/释放数组数组的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844328/