2019独角兽企业重金招聘Python工程师标准>>>

OC对象 vs CF对象

在ARC场景下,对象所有权没有转换

使用__bridge关键字即可实现CF对象和OC对象之间的自由转换

  • OC对象转换为CF对象

调用CF框架的方法,所有权没有改变还是属于OC对象,对象的生命周期还是有ARC自动管理,不需要手动释放

  • CF对象转换为OC对象

调用OC对象的方法,所有权没有改变还是属于CF对象所拥有,所以需要调用CFRelease来完成对象的释放

对象所有权的转换

  • CF对象转换为OC对象

需要释放CF对象的所有权,把所有权交给OC对象管理,所以需要使用桥接转换函数CFBridgingRelease()实现所有权的转换,也可以使用__bridge_transfer 关键字实现这个所有权的转换过程

  • OC对象转换为CF对象

OC对象会自动释放,CF对象需要保留该对象,所以需要使用桥接转换函数CFBridgingRetain()实现所有权的保留,防止OC对象释放使用CF对象出现悬垂指针,也可以使用__bridge_retained 关键字实现这个所有权的转换过程

转载于:https://my.oschina.net/FEEDFACF/blog/1845893

OC对象 vs CF对象相关推荐

  1. 【学习笔记】【oc】类和对象及类的三大基本特征

    1.类和对象 类是抽象化,对象是具体化. (1)定义类: 分为两个步骤,类的声明:定义类的成员变量和方法:@interface 用于声明定义类的接口部分,@end表面定义结束:. 成员变量的定义:{} ...

  2. ios开发之OC基础-类和对象

    ios开发之OC基础-类和对象 本系列的文章主要来自于个人在学习前锋教育-欧阳坚老师的iOS开发教程之OC语言教学视频所做的笔记,边看视频,边记录课程知识点.建议大家先过一遍视频,在看视频的过程中记录 ...

  3. java转js_java对象转js对象

    在js中直接使用 EL表达式表达java对象时,输出是对象的类名. 没有达到我们要使用该对象的目的. 比如 var user= ${user}; 在页面上查询代码为 var user=com.test ...

  4. iOS class深入理解: 实例对象、类对象、元类和isa指针

    你要知道的class都在这里 转载请注明出处http://blog.csdn.net/u014205968/ 深入代码理解instance.class object.metaclass 面向对象编程中 ...

  5. VBA---EXcel工具栏及控件对象、助手对象、内置对话框对象介绍

    又是一篇别人总结的文章,摘取了其中一部分,其中CommandBar对象比较有用. 一)工具栏及其控件对象 在Office中通过VBA开发工具栏和菜单,需使用Office提供的CommandBar.Co ...

  6. Java基于对象基础 基于对象和面向对象的区别(转)

    Java基于对象基础 基于对象和面向对象的区别 JavaScript设计者想把javascript语言设计成基于对象(object-based)的语言,他想把这个与面向对象(object-orient ...

  7. request 对象和 response 对象

    Web服务器收到客户端的http请求,会针对每一次请求,分别创建一个用于代表请求的request对象.和代表响应的response对象 HttpServletResponse HttpServletR ...

  8. 数组、字符串对象、Math对象

    数组的介绍 数组介绍 概念: 就是将若干个数据以一定的顺序放在一起的一个集合体,整体上就称之为"数组".数组就是一列数据的有序排列的集合. 定义形式: var arr1 = new ...

  9. jQuery对象和DOM对象使用说明

    1.jQuery对象和DOM对象第一次学习jQuery,经常分辨不清哪些是jQuery对象,哪些是 DOM对象,因此需要重点了解jQuery对象和DOM对象以及它们之间的关系.DOM对象,即是我们用传 ...

最新文章

  1. IIS7中WCF配置问题集合
  2. 移动端分步注册_移动应用程序的可用性测试:分步指南
  3. vscode中 解决格式化后将单引号变双引号
  4. ES6新语法 变量 、 服务器端js和浏览器端js的区别
  5. 使用will和would来提出请求_42
  6. 3.4 卷积的滑动窗口实现
  7. 凝思linux操作系统4.2内核版本_打破技术垄断!国产操作系统的逆袭之路
  8. DxO FilmPack 5详细教程:对照片进行艺术渲染,使其具有专业电影的色彩和颗粒感
  9. listary提升开发效率
  10. Python自学教程3-英语不好,变量怎么命名
  11. c语言函数求圆面积,C语言编写函数,计算圆面积.
  12. 1234变4321java_java:把1234成4321整数倒逆代码
  13. 解决Visio中对象不能通过键盘方向键微调位置
  14. [iOS]判断ipa是否脱壳
  15. Pytorch——XLNet 预训练模型及命名实体识别
  16. 可视化分析工具Qlik进阶
  17. 教你替换文件名,如何批量更改部分文件名的操作方法
  18. jQuery实现BBS发贴操作
  19. 旅行照片剪辑--环青海湖篇
  20. Java实现多线程的两种方式讲解

热门文章

  1. pandas XLRDError Excel xlsx file; not supported 解决办法
  2. opencv_python使用cv2.imread()读取中文路径,cv2.imwrite()把图片写入中文路径。
  3. numpy中的cov(方差计算)简单介绍
  4. debian/ubuntu 安装和使用perf
  5. java反射 数组类,乐字节Java反射之三:方法、数组、类加载器和类的生命周期
  6. ionic 笔记-wzq
  7. 你需要知道的有关Selenium异常处理的都在这儿
  8. java程序分为哪两大类_JAVA程序基础(第1-2章分类)复习-1
  9. 关于Linux的用户管理的相关研究-------(一)
  10. 1、Hello World