Fundation 是 CoreFundation 一种包装,在MRC底层数据结构是一摸一样的.
在MRC情况下 CF对象和NS对象是一个东西.
当在ARC情况下需要用到CF对象时可以利用__bridge来转换对象:
__bridge ->内存管理者不切换 ,即 用CF类构造函数创造的对象仍然需要手动release , OC类构造函数创建的对象可以自动释放.下面同理.
__bridge_transfer/CFBridgingRelease ->把CF对象转换成NS对象,并且内存管理者切换 , 即 CF对象转换为OC对象后,可以被自动释放.
__bridge_retained/CFBridgingRetain -> 把NS对象转换成CF对象,并且内存管理者切换.去上面相反.
网友评论