枚举类型:enum
枚举只是一种常量命名方式。
并且给枚举值 起一个容易懂的名字
某个对象所经历的各种状态就可以定义为一个简单的枚举集(enumeration set)
实现枚举所有的数据类型取决于编译器,不过其二进制位的个数必须能完全表示枚举编号才行
和typedef 关键字 联合使用
可以不使用编译器所分配的符号,手工指定某个枚举成员所对应的值
用NS_ENUM 与 NS_OPTIONS 宏来定义枚举类型,并指明底层数据类型。这样做可以确保枚举是用开发者所选的底层数据类型实现出来的,而不会采用编译器所选择的类型。
和switch的用法 在处理枚举类型的switch语句中,不要实现default分之;这样的话,加入新的枚举之后,编译器就会提示开发者:swith语句并未处理所有枚举。
-
不懂的地方:如果把某个方法的选项表示为枚举类型,而且多个选项又可以同时使用,那么就将各选项值定义为2的幂,以便通过按位或操作将其组合起来
typedef enum {
AA,
BB,
CC
}Name;
typedef enum : NSUInteger {
MyEnumValueA,
MyEnumValueB,
MyEnumValueC,
} MyEnum;
typedef NS_ENUM(NSUInteger, MyEnum) {
MyEnumValueA,
MyEnumValueB,
MyEnumValueC,
};
typedef NS_OPTIONS(NSUInteger, MyEnum) {
MyEnumValueA = 1 << 0,
MyEnumValueB = 1 << 1,
MyEnumValueC = 1 << 2,
};
/** 借鉴网址
https://my.oschina.net/u/2340880/blog/500870?p={{page}}
http://ww.jianshu.com/p/bb37516edf3f
http://blog.csdn.net/u014205965/article/details/45913747