打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
CFBridgingRetain与CFBridgingRelease的详细说明

在CoreFoundation框架和Foundation框架中有大量的可互换使用的数据类型。这意味着你可以使用相同的数据类型,作为CoreFoundation框架方法调用或Objective-C消息的参数或接收者。这种在CoreFoundation框架和Foundation框架之间交换使用数据类型的技术就叫 Toll-Free Bridging。

#if __has_feature(objc_arc)


// After using a CFBridgingRetain on an NSObject, thecaller must take responsibility for calling CFRelease at anappropriate time.

NS_INLINE CF_RETURNS_RETAINEDCFTypeRefCFBridgingRetain(id X) {

   return (__bridge_retainedCFTypeRef)X;

}


NS_INLINE idCFBridgingRelease(CFTypeRefCF_CONSUMED X) {

   return (__bridge_transferid)X;

}


#else


// This function is intended for use while converting toARC mode only.

NS_INLINE CF_RETURNS_RETAINED CFTypeRefCFBridgingRetain(id X) {

   return X ? CFRetain((CFTypeRef)X) :NULL;

}


// This function is intended for use while converting toARC mode only.

NS_INLINE idCFBridgingRelease(CFTypeRef CF_CONSUMED X) {

   return[(id)CFMakeCollectable(X)autorelease];

}


#endif

并不是多有的CF对象都支持 Toll-FreeBridging!

以下是支持该技术的类型表

Core Foundation type

Foundation class

Availability

CFArrayRef

NSArray

OS X v10.0

CFAttributedStringRef

NSAttributedString

OS X v10.4

CFCalendarRef

NSCalendar

OS X v10.4

CFCharacterSetRef

NSCharacterSet

OS X v10.0

CFDataRef

NSData

OS X v10.0

CFDateRef

NSDate

OS X v10.0

CFDictionaryRef

NSDictionary

OS X v10.0

CFErrorRef

NSError

OS X v10.5

CFLocaleRef

NSLocale

OS X v10.4

CFMutableArrayRef

NSMutableArray

OS X v10.0

CFMutableAttributedStringRef

NSMutableAttributedString

OS X v10.4

CFMutableCharacterSetRef

NSMutableCharacterSet

OS X v10.0

CFMutableDataRef

NSMutableData

OS X v10.0

CFMutableDictionaryRef

NSMutableDictionary

OS X v10.0

CFMutableSetRef

NSMutableSet

OS X v10.0

CFMutableStringRef

NSMutableString

OS X v10.0

CFNumberRef

NSNumber

OS X v10.0

CFReadStreamRef

NSInputStream

OS X v10.0

CFRunLoopTimerRef

NSTimer

OS X v10.0

CFSetRef

NSSet

OS X v10.0

CFStringRef

NSString

OS X v10.0

CFTimeZoneRef

NSTimeZone

OS X v10.0

CFURLRef

NSURL

OS X v10.0

CFWriteStreamRef

NSOutputStream

OS X v10.0

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
ARC中
Objective
新方八阵
车主注意:3月起,这3种违章不用担心再被扣分!
<冰肌玉骨>
RHRP1560-ASEMI快恢复二极管规格书
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服