文章目录
前言
Core Foundation框架和Foundation框架中有许多数据类型可以互换使用
比如我们可以使用NSString对象将其用作CFStringRef,也可以使用CFStringRef对象将其用作NSString。
这种可以互换使用的数据类型也被称为免费桥接数据类型
。
这意味着我们可以使用相同的数据结构作为Core Foundation函数调用的参数或者Objective-C消息调用的接收者。
然而,并不是所有的数据类型都是免费桥接的,详细列表可以参考Toll-Free Bridged Types。
- 在桥接中,与内存管理相关的一个重要问题:
就是转换过程中对象的所有权问题。比如在ARC下,我们需要将一个Core Foundation对象转换成一个Objective-C对象,这时候就需要告诉编译器如何管理对象的所有权。
于是引入了bridge相关的关键字来说明对象的所有权语义。