Re: Memory management on returning nil in init
Re: Memory management on returning nil in init
- Subject: Re: Memory management on returning nil in init
- From: Eiko Bleicher <email@hidden>
- Date: Mon, 21 Jun 2010 16:55:59 +0200
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 (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