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获取指定月份有几个星期x,获取指定月份跨了多少个星期
    linux下vim编辑器使用
    bash Shell条件测试
    grep与正则表达式
    网络基础--NAT
    网络基础-DHCP
    Python--元组(tuple)
    Python--元组(tuple)
    Linux--用户管理
    Linux--用户管理
  • 原文地址:https://www.cnblogs.com/tekkaman/p/2478975.html
Copyright © 2011-2022 走看看