Core Foundation:是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能。
该框架支持进行管理的数据以及可提供的服务:
__bridge_retained(相当与 CFBridgingRetain() ) (也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;
__bridge_transfer(相当与 CFBridgingRelease() ) (也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。
该框架支持进行管理的数据以及可提供的服务:
群体数据类型 (数组、集合等),程序包,字符串管理,日期和时间管理,原始数据块管理,偏好管理,URL及数据流操作,线程和RunLoop,端口和soket通讯.
Core Foundation与objective-c对象转换不需消耗cpu.
由于ARC不能管理Core Foundation Object的生命周期,所以在Core Foundation和ARC之间,我们需要使用到__bridge,__bridge_retained和__bridge_transfer三个转换关键字。
__bridge_retained(相当与 CFBridgingRetain() ) (也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;
__bridge_transfer(相当与 CFBridgingRelease() ) (也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。