I feel like I've asked this before, but I don't feel I'm grasping the answer. 
Why don't these work the same way under ARC:

    NSString* answer = @"42";
    int ans = CFStringGetIntValue((CFStringRef)answer);

and

    NSURL* imageSource = [NSURL new];
    CGImageSourceRef src =
        CGImageSourceCreateWithURL((CFURLRef)imageSource, nil);

The first one compiles (with no explicit __bridge). The second one doesn't; you 
must say __bridge explicitly. But why? They look completely parallel to me.

The mystery is compounded by the fact that if you omit the cast entirely in the 
first example, the compiler claims that you need a bridged cast. But you don't; 
you just need a cast. That feels like a bug; if a mere cast is sufficient, the 
compiler should say so (and Fix-It should offer it as a possible fix).

m.

--
matt neuburg, phd = m...@tidbits.com, http://www.apeth.net/matt/
pantes anthropoi tou eidenai oregontai phusei
Programming iOS 6! http://shop.oreilly.com/product/0636920029717.do
RubyFrontier! http://www.apeth.com/RubyFrontierDocs/default.html
TidBITS, Mac news and reviews since 1990, http://www.tidbits.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:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to