枚舉類型:enum
枚舉只是一種常量命名方式聂儒。
并且給枚舉值 起一個容易懂的名字
某個對象所經(jīng)歷的各種狀態(tài)就可以定義為一個簡單的枚舉集(enumeration set)
實現(xiàn)枚舉所有的數(shù)據(jù)類型取決于編譯器,不過其二進(jìn)制位的個數(shù)必須能完全表示枚舉編號才行
和typedef 關(guān)鍵字 聯(lián)合使用
可以不使用編譯器所分配的符號硫痰,手工指定某個枚舉成員所對應(yīng)的值
用NS_ENUM 與 NS_OPTIONS 宏來定義枚舉類型衩婚,并指明底層數(shù)據(jù)類型。這樣做可以確保枚舉是用開發(fā)者所選的底層數(shù)據(jù)類型實現(xiàn)出來的效斑,而不會采用編譯器所選擇的類型非春。
和switch的用法 在處理枚舉類型的switch語句中,不要實現(xiàn)default分之缓屠;這樣的話奇昙,加入新的枚舉之后,編譯器就會提示開發(fā)者: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,
};
/** 借鑒網(wǎng)址
https://my.oschina.net/u/2340880/blog/500870?p={{page}}
http://ww.jianshu.com/p/bb37516edf3f
http://blog.csdn.net/u014205965/article/details/45913747