2009-03-28 2 views

Antwort

5

Sollte die Dokumentation für NSArray näher gelesen hat:

, um ihren Inhalt in einer verwalteten Speicherumgebung starke Referenzen,

Arrays halten jedes Objekt erhält eine Nachricht beibehalten, bevor seine ID an das Array und einen Release hinzugefügt wird Nachricht, wenn es aus dem Array entfernt wird oder wenn das Array freigegeben wird. Wenn Sie eine Auflistung mit einer anderen Objektbesitz-Semantik wünschen, sollten Sie stattdessen CFArray-Referenz, NSPointerArray oder NSHashTable verwenden.

0

Sie geben ihre Referenzen auf die Objekte frei, die sie enthalten.

0

Wenn Sie ein Objekt hinzufügen, wird dessen Referenzzähler erhöht. Wenn es entfernt wird (entweder manuell oder wenn das Array zerstört wird), wird sein Referenzzähler dekrementiert.

Also mit dem folgenden Code würden Sie nicht loslassen müssen, um das Objekt

NSObject* someObject = [[[SomeClass alloc] init] autorelease]; 
[someArray addObject: someObject]; 
Verwandte Themen