zoukankan      html  css  js  c++  java
  • iOS之ARC下的ObjectiveC指针与CoreFoundation指针之间的转换

    Objective-C指针与CoreFoundation指针之间的转换

      ARC仅管理Objective-C指针(retain、release、autorelease),不管理CoreFoundation指针,CF指针由人工管理,手动的CFRetain和CFRelease来管理,注,CF中没有autorelease。

      CocoaFoundation指针与CoreFoundation指针转换,需要考虑的是所指向对象所有权的归属。ARC提供了3个修饰符来管理。

      1. __bridge,什么也不做,仅仅是转换。此种情况下:

        i). 从Cocoa转换到Core,需要人工CFRetain,否则,Cocoa指针释放后, 传出去的指针则无效。

        ii). 从Core转换到Cocoa,需要人工CFRelease,否则,Cocoa指针释放后,对象引用计数仍为1,不会被销毁。

      2. __bridge_retained or CFBridgingRetain,arc把对象所有权转出,需CoreFoundation处理。

      3. __bridge_transfer or CFBridgingRelease,CoreFoundation把对象所有权交给arc,由arc自动处理。

    示例

  • 相关阅读:
    選定下拉列表的方法
    JAVA学习路线
    封装
    重写(Overriding)
    java内存泄露
    学习实例.文章管理.文章类.Article.java
    方法重载
    学习实例.文章管理.分页查询类.Page.java
    学习实例.文章管理.目标与经验总结
    Java多线程1
  • 原文地址:https://www.cnblogs.com/tekkaman/p/2478975.html
Copyright © 2011-2022 走看看