• __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*类型的相互转换

  • 相关阅读:
    java.lang.IllegalStateException: Failed to load ApplicationContext
    exit 和 return
    ORA-01031:insufficient privileges
    Errors running buider 'DeploymentBuilder' on project 'HFMS'
    unpack
    :Spring MVC +MyBatis +MySQL 登录查询Demo
    :Spring MVC +MyBatis +MySQL 登录查询Demo
    kill 某个进程
    10053 诊断事件
    11g 搜集直方图导致不走索引
  • 原文地址:https://www.cnblogs.com/guligei/p/3547545.html
Copyright © 2020-2023  润新知