第5条-用枚举表示状态,选项,状态码,样式

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

http://www.jianshu.com/p/12db1a648b69

http://www.tuicool.com/articles/aE36za7
*/

你可能感兴趣的:(第5条-用枚举表示状态,选项,状态码,样式)