Thank you all, this gives me confidence in my code. I was just hesistant because I didn't call alloc in the initializer - but that's probably one of the reasons why you always use alloc/init together when calling. :-)
Thanks to everyone who responded. Eiko Am 21.06.2010 um 16:51 schrieb Markus Hanauska: > > On Monday, 2010-06-21, at 16:43, Eiko Bleicher wrote: > >> -(id) initWithBool:(BOOL)ok >> { >> if (self = [super init]) >> { >> if (!ok) { >> return nil; // Point of interest >> } >> } >> return self; >> } >> >> Does this code leak? > > According to my understanding of Cocoa, it does leak. You should call [self > release], as otherwise the just created object (the object has already been > created by [CLASS alloc] when init is being called) is never released > otherwise. Further no other object that [super init] might create is > released. My inits usually look like this: > > - (id)initWithBool:(BOOL)ok > { > self = [super init]; > if (self) { > if (!ok) { > [self release]; > self = nil; > } > } > return self; > } > > -- > Markus Hanauska > > > > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) 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: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com