博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
IOS 之__bridge__bridge_transfer和__bridge_retained
阅读量:6405 次
发布时间:2019-06-23

本文共 538 字,大约阅读时间需要 1 分钟。

由于ARC不能管理Core Foundation Object的生命周期,所以在Core Foundation和ARC之间,我们需要使用到__bridge,__bridge_retained和__bridge_transfer三个转换关键字。

1.__bridge CF和OC对象转化时只涉及对象类型不涉及对象所有权的转化.

意思就是,把CFObject类型转换成NSObject类型,但是对象的持有者依然是CFObject,所以我们不需要对CFObject做内存管理

2.__bridge_transfer 也可以使用CFBridgingRelease)将Core Foundation的对象转换为Objective-C的对象,同时将对象(内存)的管理权交给ARC。

由ARC来代替我们管理内存

3.__bridge_retained (也可以使用CFBridgingRetain)将Objective-C的对象转换为Core Foundation的对象,同时将对象(内存)的管理权交给我们,后续需要使用CFRelease或者相关方法来释放对象;

需要我们手动来管理内存

转载于:https://juejin.im/post/5c1a0dfbe51d454db5636543

你可能感兴趣的文章
Dubbo/HSF在Service Mesh下的思考和方案
查看>>
Django form表单
查看>>
CTYL-9.14(tomcat端口与阿里云安全组,域名与tomcat配置,域名与反向代理)
查看>>
古风男孩美名推荐分享
查看>>
Hadoop的命令
查看>>
Android 7.0 PopupWindow显示错位问题
查看>>
源码编译安装PHP5、PHP7
查看>>
Java 多线程相关问题记录
查看>>
LNMP架构介绍、MySQL安装、PHP安装、 Nginx介绍
查看>>
es6 class 笔记
查看>>
使用 MaxCompute(原ODPS) java sdk 运行安全相关命令
查看>>
简单的Spark+Mysql整合开发
查看>>
web.xml里的errorpage的用法
查看>>
阿里java面试经验大汇总(附阿里职位需求)
查看>>
Python全套零基础视频教程+软件2018最新编程视频!
查看>>
内存管理之1:x86段式内存管理与保护模式
查看>>
Java的GC与内存分配策略
查看>>
20180925上课截图
查看>>
Spring学习总结(4)——Spring AOP教程
查看>>
sql经典语句大全
查看>>