IOS 桥接

来源:互联网 发布:淘宝乐高霍比特人玩具 编辑:程序博客网 时间:2024/06/01 10:46

MRC:  core foundation类型转换成foundation类型,直接使用强制类型转换就行.



ARC:   core foundation类型转换成foundation类型,需要使用桥接.

桥接参数有以下几种:

1)  __bridge:直接进行类型转换,如果原始数据被释放掉了,被转换的数据将不能再使用.


2)  __bridge_transfer:将core foundation转换成foundation(C转OC),并且将对象的所有权给OC,对C进行了一次release操作,等同于执行了CFBridgingRelease(cft);


3)  __bridge_retained:foundation转换成corefoundation(OC转C),将对象的所有权给C,当OC使用ARC机制释放掉了内存,C还能继续使用.


__bridge没有对对象所有权进行操作,只是单纯的临时转换.后面带参数则是讲对象所有权转移,只不过C在转换的时候释放掉了,其实OC也是释放掉了,只不过OC使用ARC管理,什么时候释放不需要程序员自己管理.

0 0
原创粉丝点击