今天在整理以前的一些琐碎知识,今天就分享一个Foundation与coreFoundation的相互转换细节问题,其中的引用计数器是需要考虑的方面。
 
ARC 环境下,CoreFoundation框架中的对象依然要使用手动引用计数管理,手动内存管理的原则为:凡是使用的函数中出现了了copy,retain,create 获取的对象,都必须有调用一次CFRelease函数来释放对象。
CoreFoundation—>Fundation
  1. __bridge 可于 Fundation <-> CoreFoundation的相互转换 只负责转换类型,但并不转移对象的所有权(也就是不影响引用计数器).
  2. __bridge_transfer 只能把CoreFoudation对象转换为Foundation的对象,同时转移对象的所有权
  3. CFBridgingRelease 与 __bridge_transfer 等价,源代

Foundation与coreFoundation的相互转换

Foundation—>CoreFoundation
  1. __bridge_retained 只能把Foundation的对象转换为CoreFoundation中的对象,同时让CoreFoundation中对象负责管理对象生命周期
  2. CFBridgingRetain 与 __bridge_retained 等价,源代码

Foundation与coreFoundation的相互转换

相关文章:

  • 2021-12-28
  • 2022-02-08
  • 2022-02-08
  • 2021-06-06
  • 2021-10-19
  • 2022-01-18
  • 2021-12-24
  • 2021-08-23
猜你喜欢
  • 2021-11-18
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-01-02
  • 2021-12-23
  • 2021-12-24
相关资源
相似解决方案