Re: CF autorelease?
Re: CF autorelease?
- Subject: Re: CF autorelease?
- From: Clark Cox <email@hidden>
- Date: Thu, 23 Apr 2009 13:49:30 -0700
On Thu, Apr 23, 2009 at 1:42 PM, Todd Heberlein <email@hidden> wrote:
> Many of the Cocoa object allocation methods automatically do an autorelease
> before returning the pointer to the object, so I can call something like:
>
> foo( [NSString stringWithCString: "bar" encoding: NSASCIIStringEncoding] );
>
> and then not worry about memory leakage. Is the same true with Core
> Foundation calls? For example, will
>
> foo2( CFSTR("bar") ); or
> foo2 ( CFStringCreateWithCString(NULL, "bar", kCFStringEncodingASCII) );
>
> leak memory?
The former will not, while the latter will leak.
> I am wondering if I need to do stuff like:
>
> CFStringRef tmp_str = CFSTR("bar");
> foo2(tmp_str);
> CFRelease(tmp_str);
No, you don't. CFSTR-generated strings, like @""-strings, are special,
as they exist for the lifetime of your program.
--
Clark S. Cox III
email@hidden
_______________________________________________
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