再次我的数组阵列....
当我有一个包含数组"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)
提前致谢
(b)应该足够了.数组的deallocator将释放所有包含的对象,每个retain都有一个release(因此多个实例将被释放多次).
从不这样做[[x objectAtIndex:i] release]
- 您没有保留返回的对象,因此您将通过释放它来清除其保留计数.
归档时间: |
|
查看次数: |
1434 次 |
最近记录: |