枚举类型: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,
};