emailconfirmed, nsInternRO, nsInternRW, Administrators
3,356
edits
m (→Retain-Count) |
m (→Retain-Count) |
||
Line 10: | Line 10: | ||
'''Wichtig:''' | '''Wichtig:''' | ||
Der Programmierer muss dafür sorgen, dass seine retain/release bzw. alloc/release bzw. copy/release Aufrufe ausgeglichen sind. Ansonsten kommt es zu Leaks (Zombie-Objekte) oder zu einem Crash, wenn ein Objekt per release freigegeben wird, das es nicht mehr gibt. | Der Programmierer muss dafür sorgen, dass seine retain/release bzw. alloc/release bzw. copy/release Aufrufe ausgeglichen sind. Ansonsten kommt es zu Leaks (Zombie-Objekte) oder zu einem Crash, wenn ein Objekt per release freigegeben wird, das es nicht mehr gibt. | ||
Folgende Aufrufe erfordern einen späteren release | Folgende Aufrufe erfordern einen späteren release, weil sie den retain-count um jeweils +1 erhöhen: | ||
* alloc (owner) | * alloc (owner) | ||
* copy (owner) | * copy (owner) | ||
* new (owner, selten) | * new (owner, selten) | ||
* retain | * retain | ||
Autorelease erhöht zwar den retain-count ebenfalls +1, in der nächsten Runloop wird der retain-count allerdings automatisch um −1 verringert. Deshalb ist hierfür kein release mehr erforderlich. | |||
== Alloc/Init/Copy/Retain == | == Alloc/Init/Copy/Retain == |