Das NSMutableArray wird es freigeben. Wenn das die letzte beibehalten wird, wird es freigegeben. Aus der Dokumentation:
Wie NSArray pflegen Instanzen von NSMutableArray starke Verweise auf ihren Inhalt. Wenn Sie keine Speicherbereinigung verwenden [ Jed: das iPhone nicht]] erhält das Objekt eine Retain-Nachricht, wenn Sie einem Array ein Objekt hinzufügen. Wenn ein Objekt aus einem veränderbaren Array entfernt wird, erhält es eine Freigabemeldung. Wenn es keine weiteren Verweise auf das Objekt gibt, bedeutet dies, dass das Objekt freigegeben wird. Wenn Ihr Programm einen Verweis auf ein solches Objekt behält, wird die Referenz ungültig, es sei denn, Sie senden dem Objekt eine Retain-Nachricht, bevor es aus dem Array entfernt wird.
Weitere Informationen finden Sie in der NSMutableArray-Dokumentation . Ihr Beispiel bezieht sich tatsächlich auf removeObjectAtIndex:
:
Ja. Sammlungen behalten Werte bei, die sie sammeln, wenn die Werte zur Sammlung hinzugefügt werden. Dies bedeutet, dass die Werte freigegeben werden, wenn sie aus der Sammlung entfernt werden.
Ja, wenn das Objekt aus dem NSMutableArray entfernt wird, wird es freigegeben. Wenn die Retain-Anzahl 0 ist, wird die Zuordnung aufgehoben (oder die Garbage-Collection wird aufgehoben, wenn Sie stattdessen auf OS X mit aktiviertem GC ausgeführt wurden).
Wie alle gesagt haben, wird das Objekt eines NSMutableArray freigegeben, nachdem es aus dem Array entfernt wurde.
Wenn Sie das Objekt nicht freigeben möchten, behalten Sie es vor dem Aufruf der Methode remove object bei. In diesem Fall sind Sie dafür verantwortlich, dass es später veröffentlicht wird:
%Vor%Tags und Links objective-c iphone cocoa-touch