`
xumingrencai
  • 浏览: 1179445 次
文章分类
社区版块
存档分类
最新评论

Objective-c 枚举类型

 
阅读更多

转载自:http://book.51cto.com/art/201105/262240.htm

如果一个变量只有几种可能的值,那么,可以把它定义为枚举类型(也称为枚举)。所谓枚举是指将变量的值一一列举出来,变量的值只限于列举出来的值的范围内。枚举类型的定义是以enum 关键字开头,然后是枚举数据类型的名称,而后是一系列值,这些值包含在一对花括号中,它们定义了可以给该类型指派的所有容许的值。例如:

  1. enumsex{male,female};

上面的例子定义了一个枚举类型sex,这个数据类型只能指派male和female两种值。要注意的是,如果指定其他的值,Objective-C编辑器不会发出警告。

下面我们使用这个类型来定义变量:

  1. enumsexstudent,teacher;

上面的例子定义了两个sex 类型的变量student 和teacher,这两个变量的值只能是male或female。比如,

  1. student=male

在Objective-C 编译中,将枚举元素(比如male)按照常量处理。Objective-C 语言的编译器按照定义的顺序从0开始依此编号下去。你也可以修改这个编号顺序。比如,

  1. enumdirection{up,down,left=9,right};

我们定义了一个枚举类型direction,因为up 在序列的第一位,所以编译器将它赋值为0,down在其后面所以赋值为1;对于left,我们赋值为9,后面是right,所以它的值是10。

【例2-13】枚举标识符实例。

  1. #import<Foundation/Foundation.h>
  2. intmain(intargc,constchar*argv[]){
  3. NSAutoreleasePool*pool=[[NSAutoreleasePoolalloc]init];
  4. enumdirection{
  5. left,right,up=9,down
  6. };
  7. enumdirectionmydirection;
  8. mydirection=right;
  9. NSLog(@"%i",mydirection);
  10. mydirection=down;
  11. NSLog(@"%i",mydirection);
  12. [pooldrain];
  13. return0;
  14. }

【程序结果】

  1. 1
  2. 10

还有一个要指出的是,枚举值可以被用来作判断比较,比如:

  1. if(mydirection==right)…


分享到:
评论

相关推荐

    [Objective-c程序设计].杨正洪等.扫描版

    《Objective-C程序设计》(作者杨正洪、郑齐心、李建国)通过大量的实例系统地介绍了Objective-C语言的基本概念、语法规则、框架、类库及开发环境。读者在阅读本书后,可以掌握Objective-C语言的基本内容,并进行...

    Objective-C2.0程序设计

    第1部分 Objective-C语言 第2章 Objective-C程序设计 2.1 编译并运行程序 2.1.1 使用Xcode 2.1.2 使用Terminal 2.2 解释第一个程序 2.3 显示变量的值 2.4 小结 2.5 练习 第3章 类、对象和方法 3.1 到底什么是对象 ...

    Using Swift with Cocoa and Objective-C完整中文CocoaChina精校版

    Objective Objective Objective Objective-C选择器 选择器 (Selectors)(Selectors)(Selectors) (Selectors)(Selectors)(Selectors)(Selectors) 15 2.2. 2.2. 使用 Objective Objective Objective Objective-C特性...

    teney97#Objective-C-Style-Guide#枚举|枚举在 switch 里的用法规范1

    枚举在 switch 里的用法规范在处理枚举类型的 switch 语句中,如果你想处理所有枚举类型,而不是给部分类型使用默认处理方式的话,那么就不要实现 def

    纽约时报 移动团队 Objective-C 规范指南

    枚举类型 位掩码 私有属性 图片命名 布尔 单例 导入 Xcode 工程 点语法 应该 始终 使用点语法来访问或者修改属性,访问其他实例时首选括号。 推荐: view.backgroundColor = UIColor.orangeColor; UIApplication....

    Objective-C-Style-Guide

    枚举类型 Bitmasks Case 语句 私有属性 [图片命名](#Image Naming) 布尔值 单例 Xcode 工程 语言 要求使用美式英语。 推荐: UIColor *myColor = [UIColor whiteColor]; 不推荐: UIColor *myColour = [UIColor ...

    Objective-C语法总结

    XCode、Objective-C、Cocoa .................................................................................................. 3 Common Filename Extensions .................................................

    NYTimes-Objective-C-Style-Guide-ZH:纽约时报移动团队 Objective-C 项目风格指南中文版

    注:此文档并未与官方同步翻译,仅供参考。...枚举类型 位掩码 私有属性 图片命名 布尔 单例 导入 Xcode 工程 点语法 应该 始终 使用点语法来访问或者修改属性,访问其他实例时首选括号。 推荐: view.backgroundColo

    Objective-C-Fake-Code:Objective-C 伪代码

    语言和运行时1.1 为枚举类型创建字符串表示 NSString * const UITableViewCellStyleDescription[] = { [UITableViewCellStyleDefault] = @" Default " ,[UITableViewCellStyleSubtitle] = @" Subtitle " ,...

    RTWalkthrough:githubariokBWWalkthrough的Objective-C克隆(在过程中有所改进)

    RTWalkthrough 的Objective-C克隆(在过程中有所改进) 请阅读他们的解释,因为所有内容也都适用于此。 虽然没有什么变化animationSubviews IBOutletCollection ariok的实现会自动为主视图的子视图设置动画。 在...

    objc-zen-book, 禅宗与 Objective C 工艺艺术的艺术.zip

    objc-zen-book, 禅宗与 Objective C 工艺艺术的艺术 禅与 objective-c-工艺艺术 前言Swift社区的 。作者条件Yoda条件nil和BOOL检查黄金路径复杂条件三元运算符错误句柄案例声明枚举类型名称常规约定常量方法文字

    iPhone应用开发从入门到精通代码

    Objective-C语言的语法基础454.1 Objective-C中的对象、类和方法454.1.1 对象454.1.2 类474.1.3 接口和实现474.1.4 方法484.2 Objective-C语言的基本语法介绍484.2.1 文件类型494.2.2 类的声明494.2.3 方法...

    积分java源码-pyginny:PyGinny是一个生成跨语言类型声明和接口绑定的工具

    支持三种核心语言的原始类型和用户定义的枚举、记录和接口的交集。 生成接口代码,允许在 C++ 和 Java(使用 JNI)或 Objective-C(使用 Objective-C++)之间进行双向调用。 可以自动生成数据类型的比较器函数(相等...

    djinni-generator:命令行工具,可从djinni-IDL文件生成粘合代码

    类型(枚举,记录)的C ++实现 类型的Java实现 类型的Objective-C实现 通过JNI在C ++和Java之间转换的C ++代码 在C ++和Objective-C之间转换的Objective-C ++代码。 安装 Djinni要求Java能够执行! Linux,macOS ...

    JSPatch学习笔记-UI基础

    * 使用OC中的枚举类型 `Objective-C 里的常量不能直接在 JS 上使用,可以直接在 JS 上用具体值代替,或者在 JS 上重新定义同名的全局变量` 3. 类的扩展 * 重写方法(调用父类方法,需添加`ORIG`关键字) * 覆盖方法...

    iOS开发之枚举用法小结

    Enum,也就是枚举,从C语言开始就有了,C++、Java、Objective-C、Swift这些语言,当然都有对应的枚举类型,功能可能有多有少,但是最核心的还是一个—规范的定义代码中的状态、选项等“常量”。 举个例子,我们想要在...

    djinni:生成跨语言类型声明和接口绑定的工具

    金尼Djinni是用于生成跨语言类型声明和...主要特点从单个接口描述文件生成并行的C ++,Java和Objective-C类型定义。 支持三种核心语言的原始类型和用户定义的枚举,记录和接口的交集。 生成接口代码,该接口代码允许在

    objc-ast-experiments

    这是通过解析'clang -ast-dump = json'的输出来创建与macOS Objective-C API的语言绑定... gen_ir.py将JSON文件作为输入,该文件描述应从系统头(C结构,枚举和函数,ObjC接口,协议和类别及其方法)中提取的声明。 ge

Global site tag (gtag.js) - Google Analytics