Skip navigation.
 
mlRe: Best practice for overridden initializers in subclasses
FROM : Andy Lee
DATE : Wed Mar 26 04:47:47 2008

On Mar 25, 2008, at 8:09 PM, Quincey Morris wrote:
> On Mar 25, 2008, at 16:26, Andy Lee wrote:

>> - (id)init
>> {
>>  NSLog(@"%@ -- '%@' is not the designated initializer",
>>        [self class],
>>        NSStringFromSelector(_cmd));
>>  [self release];
>>  return nil;
>> }

>
> 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.


Ah, I hadn't thought of that -- I should have looked more closely at 
your code.

--Andy

Related mailsAuthorDate
mlBest practice for overridden initializers in subclasses Andy Klepack Mar 25, 23:01
mlRe: Best practice for overridden initializers in subclasses Quincey Morris Mar 26, 00:06
mlRe: Best practice for overridden initializers in subclasses Andy Lee Mar 26, 00:26
mlRe: Best practice for overridden initializers in subclasses Kyle Sluder Mar 26, 00:38
mlRe: Best practice for overridden initializers in subclasses Quincey Morris Mar 26, 01:09
mlRe: Best practice for overridden initializers in subclasses Chris Suter Mar 26, 01:42
mlRe: Best practice for overridden initializers in subclasses Andy Lee Mar 26, 04:47