我是靠谱客的博主 默默墨镜,最近开发中收集的这篇文章主要介绍OC对象 vs CF对象,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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

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对象的全部内容,希望文章能够帮你解决OC对象 vs CF对象所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部