从NSArray中删除对象

Fry*_*Fry 11 release nsmutablearray nsarray ios automatic-ref-counting

我有一个ARC项目.

NSArray内心有一些东西.在某些时候,我需要更改数组中的对象.

惠特NSMutableArray我会做的:

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

我确信这个方法会释放数组中包含的所有对象.但是对于NSArray我不能那样做!所以,我的问题是:如果我将数组设置为nil然后重新初始化它,那么数组中包含的旧对象是否真的从内存中释放出来?

array = nil;
array = [[NSArray alloc] initWithArray:newArray];
Run Code Online (Sandbox Code Playgroud)

或者我需要使用NSMutableArray

And*_*Ley 11

你可以这样做:

array = newArray;
Run Code Online (Sandbox Code Playgroud)

这将导致array被释放.当它NSArray被取消分配时,所有包含的对象也将被释放.