【From】https://www.cnblogs.com/wujie123/p/6795038.html
Core Foundation框架
Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,它们为iOS应用程序提供基本数据管理和服务功能:
- 群体数据类型 (数组、集合等)
- 程序包
- 字符串管理
- 日期和时间管理
- 原始数据块管理
- 偏好管理
- URL及数据流操作
- 线程和RunLoop
- 端口和soket通讯
__bridge
:CF和OC对象转化时只涉及对象类型不涉及对象所有权的转化,所以不需要对CF的对象进行释放,即不需要添加CFRelease
__bridge_transfer
:常用在CF对象转化成OC对象时,将CF对象的所有权交给OC对象,此时ARC就能自动管理该内存,作用同CFBridgingRelease()
__bridge_retained
:与__bridge_transfer
相反,常用在将OC对象转化成CF对象,且OC对象的所有权也交给CF对象来管理,即OC对象转化成CF对象时,涉及到对象类型和对象所有权的转化,作用同CFBridgingRetain()
由上可知, __bridge_retained
是编译器替我们做了 retain 操作,而 __bridge_transfer
是替我们做了 release。
PS: iOS中ARC 和 非ARC 之间的转换
1、选择项目中的Targets,选中你所要操作的Target,
2、选Build Phases,在其中Complie Sources中选择需要ARC的文件双击, 并在输入框中输入-fobjc-arc
,如果不要ARC则输入-fno-objc-arc
网友评论