I’m new to Objective-C (and stackoverflow) and I’m a little turned around about best practices with regards to properties.
My understanding is that when you’re completely done with a property you can avoid bugs by releasing them and then immediately setting to nil so that subsequent messages also return nil instead of an exception.
[myProperty release];
myProperty = nil;
However, when it comes to dealloc for ‘copy’ and ‘retain’ properties is there any need to do both? or does a simple ..
[myProperty release];
.. cut it? Also, am I correct that I don’t need to release assign properties in dealloc?
Thanks!
Do release, but don’t bother setting to nil. Setting to nil via your @synthesized setter:
will release your old value as part of the reassignment (though as noted in the comments, may have unwanted side effects), but simply assigning nil to your member variable:
will not.
is all you need.
(and you are correct about “assign” properties.)