Wenn Objective-C-Container freigegeben werden, geben sie ihre Verweise auf die Objekte frei, die sie enthalten, oder muss ich das manuell tun?Verhalten von NSArray (und anderen Containern) auf Dealloc
2
A
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];
0
Verwandte Themen
- 1. iPhone dealloc und viewDidUnload Problem
- 2. Sortieren NSArray benutzerdefinierte Objekte von einem anderen NSArray benutzerdefinierte Objekte
- 3. Sortieren NSArray von benutzerdefinierten Objekten basierend auf der Sortierung eines anderen NSArray von Zeichenfolgen
- 4. Release, Dealloc und die Selbstreferenz
- 5. Netzwerkname von Containern auf mehreren Brücken
- 6. NSArray von MySQL nach NSTableView
- 7. Speicherverlust beim Hinzufügen von Objekten zu Nsarray
- 8. ARC Referenzzählung Dealloc und Release
- 9. NSArray von NSString zu NSString von NSArray-Literal?
- 10. CSS "Breakpoints" auf Höhe von Containern
- 11. Verwenden von Hadoop und Spark auf Docker-Containern
- 12. konst und STL-Containern
- 13. Unterschiede zwischen [NSArray arrayWithArray:] und [NSArray Kopie]
- 14. [Self-Release], [Self-Dealloc] oder [Super Dealloc] in Init-Methoden?
- 15. Speicherauslastung von Docker-Containern
- 16. NSArray- und Bool-Werte
- 17. Freigabe in viewDidUnload und dealloc beides?
- 18. Seltsames Verhalten beim Decodieren eines NSArray über NSSecureCoding
- 19. Erstes Element von NSArray
- 20. Dealloc wird nicht aufgerufen
- 21. Steuern von dynamisch erstellten Containern
- 22. Protokollierung von Multiprocess-Docker-Containern
- 23. eine NSArray von NSDates
- 24. NSMutableArray von NSArray
- 25. Debuggen von Intels TBB-Containern
- 26. Endlosausgabe von mehreren Docker-Containern
- 27. Datenstrukturen Äquivalente von STL-Containern
- 28. Erhalten NSIndexSet von NSArray
- 29. Freigabe NSArray Vs Freigabe NSArray
- 30. Verwenden Sie nicht Accessor-Methoden in Initialisierungsmethoden und Dealloc