常规的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

转载于:https://www.cnblogs.com/GoGoagg/archive/2011/12/13/2285682.html

成员变量的声明位置引起编译错误相关推荐

  1. c++模板函数声明定义分离编译错误详解

    今天看到accelerated c++上有个简单的vector容器的实现Vec,就再vs2008上编译了下: /  Vec.h #ifndef GUARD_VEC_H #define GUARD_VE ...

  2. 易语言中关于成员变量的声明

    前言 这里的这篇学习笔记是针对于易语言的变量声明 因为我感觉易语言的编程还是写的有些奇怪 有些模糊不清 感觉还是没有Java好 1. 关于窗口组件变量 感觉窗口组件的变量是直接在UI设计界面进行的  ...

  3. java局部变量说法不正确的是_关于Java的成员变量和局部变量,下面说法错误的是...

    关于 员变 量和 局部不包图的括(作用竣工工程测量. 吊装的技行性特点根据方案论证术可是指设备,变量吊装性的可行研究在技方法术上. 密性和严应做强度试验,面说系统门安.面说排中的中阀装前建筑管道给水供 ...

  4. Go开发 之 基础语法(变量的声明、初始化、作用域,匿名变量,多变量赋值,变量逃逸分析)

    文章目录 1.变量的声明 1.1.标准格式 1.2.简短格式 1.3.批量格式 2.变量的初始化 2.1.标准格式 2.2.编译器推导类型的格式 2.3.声明并初始化 3.多个变量同时赋值 4.匿名变 ...

  5. 【iOS 开发】Objective - C 面向对象 - 方法 | 成员变量 | 隐藏封装 | KVC | KVO | 初始化 | 多态

    一. Objective-C 方法详解 1. 方法属性 (1) OC 方法传参机制 Object-C 方法传参机制 : OC 中得参数传递都是值传递, 传入参数的是参数的副本; -- 基本类型 (值传 ...

  6. java变量只声明未初始化是否可以直接使用?

    成员变量只声明未初始化在类初始化时会赋予默认值可以直接使用:局部变量必须赋值才可以使用,如果局部变量未赋值,编译无法通过. 报错: 把list的定义放到方法外面,定成全局变量就好了

  7. java变量不声明可以直接使用吗_我们可以在不使用Java进行初始化的情况下声明最终变量吗?...

    在Java中,final是可与字段类和方法一起使用的access修饰符.当一个方法为final时,它不能被覆盖. 当变量为最终变量时,其值无法进一步修改. 当类结束时,不能扩展. 无需初始化即可声明最 ...

  8. java中对象多态时成员变量,普通成员函数及静态成员函数的调用情况

    /* 样例1:class Parent{int num = 3;}class Child extends Parent{int num = 4;} *//* 样例2: class Parent{}cl ...

  9. Java类定义、成员变量定义、方法定义、成员变量与局部变量的区别

    编程语言的三大发展阶段:面向机器语言.面向过程语言.面向对象语言 : 其中面向对象语言主要体现三个特征:封装性.继承.动态 : 类的定义:类声明和类体.基本格式如下: class 类名{    类体 ...

最新文章

  1. HNSW算法原理(二)之删除结点
  2. HDOJ 1175 连连看 DFS
  3. uc/os-ii中任务优先级算法
  4. Windows保护模式学习笔记(十二)—— 控制寄存器
  5. 游戏中常用的寻路算法(5)预先计算好的路径的所用空间
  6. 最稳定的Nginx绿色环境,可无限自定义PHP和mysql版本、同时运行N个版本
  7. 摇滚java游戏_java 集合类
  8. HDU - 3516 Tree Construction
  9. 【转】Java删除文件夹和文件
  10. 利用Github搭建免费图床
  11. SpringSecurity应用(一)
  12. C# 创建 读取 更新 XML文件
  13. 解决网站开通https后地址栏图标小锁变成灰色警告图标教程
  14. 最大流最小割算法入门理解
  15. android切图规范,APP切图详细规范终极指南
  16. 降噪和变声的几个常用软件简单整理
  17. Linux操作命令分类详解 - 目录文件(二)
  18. 游戏服务器架构,配置
  19. 现在移动端还用rem吗?nonono
  20. border定义不同边框,虚线边框(dashed,dotted),实线边框(solid)

热门文章

  1. c# 编程学习(二)
  2. sublime_text快捷键
  3. Jenkins + gitlab webhook实现自动化部署
  4. Git Proxy开关
  5. 搭建Spring MVC 4开发环境八步走
  6. RedHat6.2 x86手动配置LNMP环境
  7. R学习之——R用于文本挖掘(tm包)
  8. mysql查询流程解析及重要知识总结
  9. Linux5观察doc目录并截屏,linux截屏命令
  10. python拨号_python 拨号代码(win10 系统亲测有效)