I agree that the description is confusing. Since I just grasped them, I’ll try to summarize:
-
(__bridge_transfer <NSType>) opor alternativelyCFBridgingRelease(op)is used to consume a retain-count of aCFTypeRefwhile transferring it over to ARC. This could also be represented byid someObj = (__bridge <NSType>) op; CFRelease(op); -
(__bridge_retained <CFType>) opor alternativelyCFBridgingRetain(op)is used to hand anNSObjectover to CF-land while giving it a +1 retain count. You should handle aCFTypeRefyou create this way the same as you would handle a result ofCFStringCreateCopy(). This could also be represented byCFRetain((__bridge CFType)op); CFTypeRef someTypeRef = (__bridge CFType)op; -
__bridgejust casts between pointer-land and Objective-C object-land. If you have no inclination to use the conversions above, use this one.
Maybe this is helpful. Myself, I prefer the CFBridging… macros quite a bit over the plain casts.