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 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! On Oct 19, 2011, at 9:04 PM, John Pannell wrote: > Hi all- > > I've got a category on NSColor to return a CGColor value. Source looks like > this: > > - (CGColorRef)CGColor > { > NSColor *colorRGB = [self > colorUsingColorSpaceName:NSCalibratedRGBColorSpace]; > CGFloat components[4]; > [colorRGB getRed:&components[0] green:&components[1] blue:&components[2] > alpha:&components[3]]; > CGColorSpaceRef theColorSpace = > CGColorSpaceCreateWithName(kCGColorSpaceGenericRGB); > CGColorRef theColor = CGColorCreate(theColorSpace, components); > CGColorSpaceRelease(theColorSpace); > return theColor; > } > > My issue is with the final line: the CGColor has a retain count of 1, as it > was made with a "Create" function. Following Cocoa convention, I'd want to > cast the return value and autorelease it, but the autorelease call is not > allowed under ARC. Xcode is doing its best to help me figure out how to > return the value, but the only thing I can get it to not squeak about is this: > > return (__bridge_retained CGColorRef)(__bridge_transfer id)theColor; > > which does not seem reasonable to me. Can anyone suggest the proper syntax > to return an "autoreleased" CGColorRef from this function? > > Thanks! > > John > > > John Pannell > http://www.positivespinmedia.com_______________________________________________ > > 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/rols%40rols.org > > This email sent to r...@rols.org _______________________________________________ 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