When deallocing a refrence I've seen release
and dealloc
being used for example
-(void)dealloc
{
[foo release];
[nar dealloc];
[super dealloc];
}
My question is when is release
to be used and when is dealloc
to be used?
Thanks
When deallocing a refrence I've seen release
and dealloc
being used for example
-(void)dealloc
{
[foo release];
[nar dealloc];
[super dealloc];
}
My question is when is release
to be used and when is dealloc
to be used?
Thanks
Never call dealloc
except as [super dealloc]
at the end of your class's dealloc
method. The release
method relinquishes ownership of an object. When a Cocoa object no longer has any owners, it may be deallocated — in which case it will automatically be sent a dealloc
message.
If you're going to program Cocoa, you need to read the Memory Management Guidelines. It's incredibly simple once you get over the initial hump, and if you don't understand what's in that document, you'll have lots of subtle bugs.
The dealloc
statement in your example is called when the object's retain count becomes zero (through an object sending it a release message).
As it is no longer needed, it cleans itself up by sending a release
message to the objects that it is holding on to.