Faustregeln für Memory Management in Cocoa
20. Juli 2008
Eigentlich ziemlich simpel, befolge einfach diese beiden Regeln:
Die Nachrichten alloc, copy und retain, sowie Nachrichten, die mit einem dieser Wörter beginnen (z.B. copyWithZone:), erhöhen den Retaincount um 1. Hat man einem Objekt eine dieser Nachrichten geschickt, etabliert man damit im Objektgraphen eine Relation. Achte darauf, beim Auflösen dieser Relation ein release zu senden, z.B. in dealloc.
Gehe bei sonstigen Rückgaben von Nachrichten wie z.B. arrayWithObjects: von einem Retaincount von 0 aus! Solche Nachrichten liefern immer Objekte zurück, denen ein autorelease gesendet wurde und die deswegen beim nächsten Referenzpunkt eines Autoreleasepools ein release erhalten. Achte darauf, wenn du selbst solche Methoden implementierst/überschreibst, der Rückgabe ein autorelease zu senden. Willst du solche Rückgaben dauerhaft behalten, sende im Codeblock des Besitzers ein retain.
Also bei alloc, copy, retain: retained. Bei sonstigen Rückgaben: autoreleased.

Kommentare
Es wurde noch kein Kommentar abgegeben.
Du kannst aber den RSS Feed der Kommentare zu diesem Eintrag abonnieren.