zoukankan      html  css  js  c++  java
  • __bridge id

    1,Core Foundation框架 (CoreFoundation.framework) 是一组C语言接口,

    它们为iOS应用程序提供基本数据管理和服务功能。下面列举该框架支持进行管理的数据以及可提供的服务:

    群体数据类型 (数组、集合等)
    程序包
    字符串管理
    日期和时间管理
    原始数据块管理
    偏好管理
    URL及数据流操作
    线程和RunLoop
    端口和soket通讯
    Core Foundation框架和Foundation框架紧密相关,它们为相同功能提供接口,但Foundation框架提供Objective-C接口。

    2,

    自 Xcode4.2 开始导入ARC机制后,为了支持对象间的转型,Apple又增加了许多转型用的关键字。这一讲我们就来了解其用法,以及产生的理由。

    引子
    我们先来看一下ARC无效的时候,我们写id类型转void*类型的写法:

    id obj = [[NSObject alloc] init];
    void *p = obj;
    反过来,当把void*对象变回id类型时,只是简单地如下来写,

    id obj = p;
    [obj release];
    但是上面的代码在ARC有效时,就有了下面的错误:

        error: implicit conversion of an Objective-C pointer
            to ’void *’ is disallowed with ARC
            void *p = obj;
                      ^
     
        error: implicit conversion of a non-Objective-C pointer
            type ’void *’ to ’id’ is disallowed with ARC
            id o = p;
                    ^

    __bridge
    为了解决这一问题,我们使用 __bridge 关键字来实现id类型与void*类型的相互转换

  • 相关阅读:
    linux内存-swap
    linux内存-buffer和cache
    Linux内存-内存管理机制oom_killer
    HTTPS(二)证书合法性校验
    HTTPS(一)基础及连接建立
    docker镜像(一)overlayfs
    DNS(三)全局流量调度
    建造者模式(Builder Pattern)
    抽象工厂模式(Abstract Factory)
    工厂方法模式(Factory Method Pattern)
  • 原文地址:https://www.cnblogs.com/guligei/p/3547545.html
Copyright © 2011-2022 走看看