Re: Best practice for overridden initializers in subclasses
Re: Best practice for overridden initializers in subclasses
- Subject: Re: Best practice for overridden initializers in subclasses
- From: Chris Suter <email@hidden>
- Date: Wed, 26 Mar 2008 11:42:25 +1100
On 26/03/2008, at 11:09 AM, Quincey Morris wrote:
Unless there is some special runtime magic going on, this seems not
absolutely safe. Your '[self release]' is going to eventually lead
to a call of '[super dealloc]' and theoretically you can't safely
call the superclass's dealloc if you haven't called a designated
superclass initializer, because you don't know what the superclass's
dealloc expects its initializer to have already done.
In practice, though, I can't imagine anything really bad happening
-- all the dealloc has available to run amok with is a bunch of
zeroes.
Well, I have actually had that problem happen to me. I was sub-
classing NSDate and releasing without calling the NSDate initialiser
and that was causing a crash. Apple updated the documentation shortly
after I reported it to them. It looks like they've fixed the cause of
the crash in Leopard. I personally think that you should be able to
call dealloc before calling any initialiser. Maybe the documentation
can be updated to remove that requirement now that NSDate has been
fixed (I've just logged a report asking for this).
- Chris
Attachment:
smime.p7s
Description: S/MIME cryptographic signature
_______________________________________________
Cocoa-dev mailing list (email@hidden)
Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden