枚舉是C語言中的一種基本數(shù)據(jù)類型,是一個"被命名的整型常量"的集合,它不參與內存的占用和釋放,我們在開發(fā)中使用枚舉的目的只有一個,那就是為了增加代碼的可讀性
舉個例子,我們想要在開發(fā)中根據(jù)四季的變化做不同的操作,我們首先想到的可能會是定義一個int型變量,通過為該變量賦不同的值來表示四季(e.g. 1為春天,2為夏天,3為秋天,4為冬天).但是,對于閱讀該份代碼的人來講,他們并不能在短時間內就明白數(shù)字1234所代表的具體含義.這個時候,選擇使用枚舉則可以應對該需求戚绕。
OC語言中的枚舉
在Objective-C語言中,Apple在iOS6中引入了兩個宏來重新定義枚舉類型(即:NS_ENUM與NS_OPTIONS),這兩者在本質上并沒有差別,都是用于定義枚舉類型,但是在使用中NS_ENUM多用于一般枚舉,而NS_OPTIONS則多用于帶有移位運算的枚舉
NS_ENUM使用示例
typedef NS_ENUM(NSInteger, Test)
{
TestA = 0,
TestB,
TestC,
TestD
};
NS_OPTIONS使用示例
typedef NS_OPTIONS(NSUInteger, Test) {
TestA = 1 << 0,
TestB = 1 << 1,
TestC = 1 << 2,
TestD = 1 << 3
};
對于一般的枚舉剪菱,要獲取枚舉的最大值是很難的裆甩,因為隨著枚舉的擴充航背,最大值在不斷變化延柠,這時推薦使用一個固定的枚舉表示最大值,例如:
typedef NS_ENUM(NSUInteger, TMEnumTest)
{
TMEnumTestOne,
TMEnumTestTwo,
TMEnumTestMax,? // 表示最大值
};
(personal think) 1.枚舉是用文字化的數(shù)據(jù)類型來描述一組分類區(qū)別的數(shù)字外潜。