Core Foundation框架&Foundation框架&桥接

Core Foundation框架(CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能.

下面列举该框架支持进行管理的数据以及可提供的服务:

--群体数据类型 (数组、集合等)
--程序包
--字符串管理
--日期和时间管理
--原始数据块管理
--偏好管理
--URL及数据流操作
--线程和RunLoop
--端口和soket通讯

Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation框架提供Objective-C接口.如果您将Foundation对象和Core Foundation类型掺杂使用,则可利用两个框架之间的 “toll-free bridging”.

桥接

 __bridge//只做类型转换,但是不修改对象(内存)管理权;
 __bridge_retained//(也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;
 __bridge_transfer//(也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC

CoreFoundation框架转Foundation框架 使用桥接

桥接方式1:
 (__bridge <#type#>*)//将对象所有权给Foundation框架一份但是本身并没有释放 这种桥接模式有内存泄漏
 加上 CFRelease(<#CFTypeRef cf#>)这个方法本身才能释放
桥接方式2:
 (__bridge_transfer <#Objective-C type#>)<#expression#>)://此方式不需要释放

你可能感兴趣的:(Core Foundation框架&Foundation框架&桥接)