[英]Remove duplicates from NSArray of Custom Objects also compare and edit same
[英]Remove objects from NSArray
我有一個ARC項目。
我有一個NSArray
whit內部的一些對象。 在某些時候,我需要更改數組中的對象。
Whit一個NSMutableArray
我會做:
[array removeAllObjects];
我確信這個方法會釋放數組中包含的所有對象。 但是對於NSArray我不能那樣做! 所以,我的問題是:如果我將數組設置為nil
然后重新初始化它,那么數組中包含的舊對象是否真的從內存中釋放出來?
array = nil;
array = [[NSArray alloc] initWithArray:newArray];
或者我需要使用NSMutableArray
?
你可以這樣做:
array = newArray;
這將導致array
被釋放。 當此NSArray
被釋放時,所有包含的對象也將被釋放。
當沒有更強的引用時,舊數組將被釋放。 如果你有唯一的強引用,那么當你將array
設置為其他東西時,它將立即被釋放。
當舊數組被釋放時,它將釋放它包含的所有對象。 如果沒有對這些對象的其他強引用,它們也將立即被釋放。
在將其設置為新數組之前,您不必設置array = nil
。
我建議使用NSMutableArray,因為不會再有分配和釋放的開銷
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.