当前位置: 首页 > news >正文

__bridge相关的三个关键字的总结

__bridge相关的三个关键字:__bridge、__bridge_retained、__bridge_transfer
主要影响是否需要调用CFRelease函数来释放CF对象。


第一种情况:将ARC对象转为CF对象
如果使用了__bridge_retained,则取得的CF对象在用完后需要调用CFRelease释放:
如果只是用__bridge,则对CF对象不需要调用CFRelease。
NSString *s1 = [[NSString alloc] initWithFormat:@"Hello, %@!", name];
//将ARC管理的对象转为CF的对象。
CFStringRef s2 = (__bridge_retained CFStringRef)s1;
// do something with s2  . . 
//CF对象使用完了需要Release
CFRelease(s2);


第二种情况:将CF对象转为ARC对象
如果使用了__bridge_transfer,则被转变的CF对象不需要调用CFRelease方法,
如果只用__bridge,则被转变的CF对象需要用CFRelease方法释放。
NSString *value = (__bridge_transfer NSString*)CFPreferencesCopyAppValue(CFSTR("someKey"),CFSTR("com.company.someapp"));    

// do something with value  . . 

//因为使用的是__bridge_transfer,所以CFPreferencesCopyAppValue函数生成的CF对象不需要用CFRelease函数释放。

相关文章:

  • AsyncSocket中tag参数的用处
  • 给我深爱着的人,祝你中秋快乐……
  • 用UILocalNotification实现闹钟的坑
  • .NET中的Event与Delegates,从Publisher到Subscriber的衔接!
  • 略时间中秒的部分,使时间中的秒变成0
  • 不可忽视的力量,插件主题网站
  • 日期只精确到天 省略时间的时间部分
  • 10月7日培训日记
  • Xcode6建的工程修改为在iPhone6和iPhone6P下等比放大
  • iOS7以上使导航栏半透明
  • 过程建模EPC,我拿什么拯救你
  • 用图作背景的cell选中时背景图变暗
  • Guru.com - The world's largest online marketplace for freelance talent.
  • view controller的automaticallyAdjustsScrollViewInsets属性
  • Blog小技巧之三-在地图上显示访问Blog读者的分布信息
  • Angular 2 DI - IoC DI - 1
  • CentOS学习笔记 - 12. Nginx搭建Centos7.5远程repo
  • classpath对获取配置文件的影响
  • css的样式优先级
  • express + mock 让前后台并行开发
  • JS+CSS实现数字滚动
  • JSONP原理
  • Laravel Mix运行时关于es2015报错解决方案
  • Laravel 菜鸟晋级之路
  • session共享问题解决方案
  • vue 配置sass、scss全局变量
  • 阿里云购买磁盘后挂载
  • 从零开始的无人驾驶 1
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 离散点最小(凸)包围边界查找
  • 前端路由实现-history
  • 前端性能优化——回流与重绘
  • 前端性能优化--懒加载和预加载
  • 使用putty远程连接linux
  • 数组大概知多少
  • 最近的计划
  • UI设计初学者应该如何入门?
  • 第二十章:异步和文件I/O.(二十三)
  • ###项目技术发展史
  • (03)光刻——半导体电路的绘制
  • (10)Linux冯诺依曼结构操作系统的再次理解
  • (42)STM32——LCD显示屏实验笔记
  • (C#)一个最简单的链表类
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (附源码)ssm码农论坛 毕业设计 231126
  • (经验分享)作为一名普通本科计算机专业学生,我大学四年到底走了多少弯路
  • (幽默漫画)有个程序员老公,是怎样的体验?
  • (转) ns2/nam与nam实现相关的文件
  • (转)微软牛津计划介绍——屌爆了的自然数据处理解决方案(人脸/语音识别,计算机视觉与语言理解)...
  • *Django中的Ajax 纯js的书写样式1
  • .babyk勒索病毒解析:恶意更新如何威胁您的数据安全
  • .form文件_一篇文章学会文件上传
  • .net 程序发生了一个不可捕获的异常
  • .NET 设计一套高性能的弱事件机制
  • .NET值类型变量“活”在哪?