Entfernen von Objekten aus NSArray
Habe ich ein Projekt mit ARC.
Ich habe eine NSArray
whit einige Objekt im inneren.
An einem bestimmten Punkt ich ändern muss das Objekt im array.
Whit ein NSMutableArray
ich tun werde :
[array removeAllObjects];
und ich bin mir sicher, dass diese Methode release alle Objekt enthalten, in das array.
Aber mit einem NSArray ich kann das nicht tun! So, meine Frage ist: wenn ich array nil
-und dann neu zu initialisieren, das alte Objekt enthielt im array sind wirklich aus dem Speicher freigegeben ?
array = nil;
array = [[NSArray alloc] initWithArray:newArray];
Oder ich NSMutableArray
?
InformationsquelleAutor der Frage Fry | 2012-10-29
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie genau dies tun:
Dadurch wird
array
freigegeben werden. Wenn dieseNSArray
wird aufgehoben, alle enthaltenen Objekte freigegeben werden, auch.InformationsquelleAutor der Antwort Andreas Ley
Das alte array wird freigegeben, wenn es keine starken Referenzen. Wenn Sie hatte das nur als starke Referenz an, dann wenn Sie
array
etwas anderes, es wird sofort freigegeben.Wenn das alte array freigegeben wird, wird es release alle Objekte, die es enthält. Wenn es keine starken Referenzen auf die Objekte, Sie werden auch sofort freigegeben.
Sie nicht gesetzt
array = nil
vor dem setzen es in das neue array.InformationsquelleAutor der Antwort rob mayoff
Ich würde vorschlagen NSMutableArray, weil es keine overhead-Zuteilung und die Freigabe wieder
InformationsquelleAutor der Antwort Techie Manoj