ios開發系列之列舉型別的使用

2021-07-05 07:10:14 字數 1236 閱讀 1189

列舉值 ,它是乙個整形(int) , 並且,它不參與記憶體的占用和釋放,列舉定義變數即可直接使用,不用初始化.

在**中使用列舉的目的只有乙個,那就是增加**的可讀性

enum是列舉型別,用來定義一系列巨集定義常量,相當於一系列的#define xx xx,第乙個值預設從0 開始,其後依次加一, 可以對每乙個列舉元素賦值

typedef enum messagetype;
messgetype typetype的值只有0 和 1, 我們可以通過type的值來進行控制x的值

int x = type == messagetypeme ? 100 : 200 ;
列舉的定義還支援位運算的方式定義,如下:

typedef ns_enum(nsinteger, test)  

;

等於號後面必須等於1

什麼時候要用到這種方式呢?

那就是乙個列舉變數可能要代表多個列舉值的時候. 其實給乙個列舉變數賦予多個列舉值的時候,原理只是把各個列舉值加起來罷了.當加起來以後,就獲取了乙個新的值,那麼為了保證這個值的唯一性,這個時候就體現了位運算的重要作用.

位運算可以確保列舉值組合的唯一性

因為位運算的計算方式是將二進位制轉換成十進位制,也就是說,列舉值裡面訪問的是 計算後的十進位制值.打個比方:通過上面的位運算方式設定好列舉以後,列印出來的列舉值分別是: 1 2 4 8 16 這5個數字,無論你如何組合在一起,也不會產生兩個同樣的數字.

ns_options一般用來定義位運算的列舉值

ns_enum是通用情況,兩者本質一樣

typedef ns_enum(nsinteger,uibuttontype);相當於typedef

enum uibuttontype;

下面是系統檔案的兩種不同的列舉寫法

typedef ns_enum(nsinteger, uibuttontype) ;
typedef ns_options(nsuinteger, uicontrolstate) ;

IOS開發 列舉型別使用

一般情況下,我們採用c風格的enum關鍵字可以定義列舉型別。enum uiviewanimationtransition typedef 的作用是宣告別名 typedef nsuinteger uiviewautoresizing 使用nsuinteger的地方可以使用uiviewautoresiz...

iOS 列舉型別使用

引言 列舉值它是乙個整形 int 並且,它不參與記憶體的占用和釋放,列舉定義變數即可直接使用,不用初始化.在 中使用列舉的目的只有乙個,那就是增加 的可讀性.使用 列舉的定義如下 csharp view plain copy typedef enum test 列舉名稱 亦可以如下定義 推薦 結構比...

iOS開發 列舉型別和閉包

首先來說列舉型別 列舉型別的宣告方式 enum toward 列舉型別是用於別名定義一些有限的型別和一些複雜的資料結構。列舉型別的使用,能讓你的 結構更分明,可讀性也得到提公升。另外,如果需要給列舉中的列舉值賦值,必須指定列舉的型別 enum toward int 極好的事情是,enum中的case...