zoukankan      html  css  js  c++  java
  • 成员变量的声明位置引起编译错误

    常规的Objective-c的声明范例:

    @interface Sample:NSObject
    {
    @private
    int ID;
    }
    - (void)Done;
    + (void)Finish;
    @end

    声明的成员变量的位置在*.h上;

    现在之所以在这里提及成员变量的声明问题,在于和XCode版本有关
    在雪豹上的Xcode是4.0.1版本,编写上述代码完全如上。

    在狮子上的Xcode是4.2.x版本,编写上述代码既可以像上面一样,还能这么编写:

    //.h文件:
    @interface Sample:NSObject
    - (void)Done;
    + (void)Finish;
    @end

    //.m文件
    @implementation Sample
    {
    @private
    int ID;
    }

    - (void)Done
    {
    return;
    }

    + (void)Finish
    {
    return;
    }

    @end

    如果Xcode4.0.1版本编译上面的代码会出现如下错误:
    LLVM GCC 4.2 ERROR:Conflicting instance variable name 'int ID'

    LLVM GCC 4.2 ERROR:Inconsistent instance variable specification

    从这些错误信息来说,应该是编译器的处理上引起的。在Xcode4.2.x上默认编译器版本Apple LLVM compiler 3.0

    既然如此,那我在Xcode4.0.1上面选择了LLVM compiler 2.0调试编译,通过了

    总结:
    1、建议使用标准的代码书写,如“常规的Objective-c的声明范例”,好处在于各个编译器通用
    2、
    Xcode 4.0.1 默认编译器 LLVM GCC 4.2
    Xcode 4.2.x 默认编译器 Apple LLVM compiler 3.0






    无论生活、还是技术,一切都不断的学习和更新~~~努力~
  • 相关阅读:
    oracle—数据泵及常用参数
    NTP服务及时间同步
    kudu安装
    ogg12c 配置
    ogg12-ERROR OGG-01031 file D:OGGdirdated000000 is not in any allowed output directories
    ogg12c_静默安装
    git的基本使用
    redis数据库
    linux之网络
    flask框架基础
  • 原文地址:https://www.cnblogs.com/GoGoagg/p/2285682.html
Copyright © 2011-2022 走看看