美文网首页
Toll-Free Bridge

Toll-Free Bridge

作者: 有一种再见叫青春 | 来源:发表于2016-11-03 10:18 被阅读46次

    Core Foundation 和Foundation框架的转换桥

    一下函数可用于OC对象与CoreFoundation对象之间的变换,即 Toll-Free Bridge

    <pre>`CFTypeRef CFBridgeRetain (id X)
    {
    return (__bridge_retained CFTreeRef)X;
    }

    id CFCFBridgeRelease (CFTypeRef X) {
    return (__bridge_transfer id)X;
    }

    `</pre>

    一下生成并持有的NSMutableArray对象座位Core Foundation对象来处理
    <pre>`
    CFMutableArrayRef cfObject = NULL;
    {
    //变量obj持有对象生成并持有对象的强引用
    id obj = [NSMutableArrayRef alloc]init;
    //通过CFBridgeRetain将对象CFretain赋值给变量cfObject

    cfObject = CFBridgeRetain(obj);

    //通过变量obj的强引用和通过CFBridgeRetain 引用计数为2
    CFShow (cfObject);
    }
    //因为变量obj超出作用域,强引用失效,对象得到释放,无持有者的对象被废弃

    //此后对象访问出错 (悬垂指针)
    CFRelease(cfObject);
    `</pre>

    相关文章

      网友评论

          本文标题:Toll-Free Bridge

          本文链接:https://www.haomeiwen.com/subject/pdpbuttx.html