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#>)://此方式不需要释放
网友评论