gpt4 book ai didi

objective-c - 清除/释放数组数组的正确方法

转载 作者:行者123 更新时间:2023-12-03 17:30:55 26 4
gpt4 key购买 nike

再次是我的数组数组......

当我的数组“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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com