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:
self.myProperty = nil
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:
myProperty = nil
will not.
[myProperty release]
is all you need.
(and you are correct about "assign" properties.)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With