经常看到toll free bridged,只是大概知道是类型可以相互转换。为了更好的了解,在网上找到了这个资料。保存下来,方便以后查看
http://www.cocoadev.com/index.pl?HowToCreateTollFreeBridgedClass
The following classes are toll-free bridged:
http://www.cocoadev.com/index.pl?TollFreeBridged
- NSArray = CFArray
- NSMutableArray = CFMutableArray?
- NSCalendar = CFCalendar?
- NSCharacterSet = CFCharacterSet?
- NSMutableCharacterSet? = CFMutableCharacterSet?
- NSData = CFData?
- NSMutableData = CFMutableData?
- NSDate = CFDate?
- NSDictionary = CFDictionary
- NSMutableDictionary = CFMutableDictionary?
- NSNumber = CFNumber
- NSTimer = CFRunLoopTimer?
- NSSet = CFSet?
- NSMutableSet = CFMutableSet?
- NSString = CFString
- NSMutableString = CFMutableString?
- NSUrL = CFURL
- NSTimeZone? = CFTimeZone?
- NSInputStream? = CFReadStream?
- NSOutputStream? = CFWriteStream?
- Disc Recording
- NSAttributedString = CFAttributedString?
- NSMutableAttributedString = CFMutableAttributedString?
The following classes are not toll-free bridged:
- NSBundle and CFBundle?
- NSHost and CFHost
- NSRunLoop and CFRunLoop?
- NSNotificationCenter and CFNotificationCenter?
- NSSocket? and CFSocket
----------------------------------------------------------------------------------------------------------------------------------------------------
TollFreeBridging is what allows you to take CoreFoundation types and typecast them to Cocoa types (and vice versa).
So,if you have to call a CoreFoundation function that takes a CFString,but you have an NSString,you can just pass it your NSString with:
CFStringRef myCFString = (CFStringRef)someNSString;
And if you need to get an NSString from a CFString,you can do this:
NSString* myNSString = (NSString*)someCFString;
see also: HowToCreateTollFreeBridgedClass
See which classes are TollFreeBridged.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。