Re: ARC + return of autoreleased CFType
Re: ARC + return of autoreleased CFType
- Subject: Re: ARC + return of autoreleased CFType
- From: Wade Tregaskis <email@hidden>
- Date: Wed, 19 Oct 2011 10:52:15 -0400
> Following Cocoa convention you'd want to cast it to what and autorelease it? CGColorRef isn't toll-free bridged with anything. If you have been casting it to id and autoreleasing it you might have gotten away with that before but I don't think it's documented anywhere you can do that with CFTypes in general.
You can. It may not be in the docs, but all CF types are also NSObjects (or a subclass thereof).
> You could change the semantics of the method to return a CFRetain()ed object and make it the responsibility of the caller to release it (and change the name of the method too to make it clear) or you can create a UIColor with your CGColorRef, then CFRelease() it and return the UIColor.
>
> Mixing autorelease and CFTypes does't seem like a great idea, but I'm prepared for someone to point out a whole piece of documentation I've never seen, that often seems to happen!
No, mixing them is indeed a bad idea. CF doesn't have auto release pools, so anything dealing with CF types is free to not think about them, and in practice often does. I would go with explicitly returning the CGColorRef retained.
_______________________________________________
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