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

0 cocoa objective-c

再次我的数组阵列....

当我有一个包含数组"y"的多个实例的数组"x"时,如何清除/释放它而不会有内存泄漏的风险?

以下是足够的电话吗?

(a)清理阵列

[x removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

(b)释放阵列

[x release];
Run Code Online (Sandbox Code Playgroud)

或者我需要枚举数组,例如:

(c)清理阵列

for(int i=0;i<x.count;i++)
    [[x objectAtIndex:i] release];
    [x removeAllObjects];
Run Code Online (Sandbox Code Playgroud)

(d)释放阵列

for(int i=0;i<x.count;i++)
    [[x objectAtIndex:i] release];
    [x release];
Run Code Online (Sandbox Code Playgroud)

提前致谢

wal*_*lky 6

(b)应该足够了.数组的deallocator将释放所有包含的对象,每个retain都有一个release(因此多个实例将被释放多次).

从不这样做[[x objectAtIndex:i] release]- 您没有保留返回的对象,因此您将通过释放它来清除其保留计数.