Objective C中的列舉型別

2021-06-07 19:04:31 字數 1175 閱讀 2489

列舉型別如果乙個變數只有幾種可能的值,那麼,可以把它定義為列舉型別(也稱為列舉)。所謂列舉是指將變數的值一一枚舉出來,變數的值只限於列舉出來的值的範圍內。列舉型別的定義是以enum 關鍵字開頭,然後是列舉資料型別的名稱,而後是一系列值,這些值包含在一對花括號中,它們定義了可以給該型別指派的所有容許的值。例如:

enum *** ; 

上面的例子定義了乙個列舉型別***,這個資料型別只能指派male和female兩種值。要注意的是,如果指定其他的值,objective-c編輯器不會發出警告。

下面我們使用這個型別來定義變數:

enum *** student,teacher; 

上面的例子定義了兩個*** 型別的變數student 和teacher,這兩個變數的值只能是male或female。比如,

student = male; 

在objective-c 編譯中,將列舉元素(比如male)按照常量處理。objective-c 語言的編譯器按照定義的順序從0開始依此編號下去。你也可以修改這個編號順序。比如,

enum direction ; 

我們定義了乙個列舉型別direction,因為up 在序列的第一位,所以編譯器將它賦值為0,down在其後面所以賦值為1;對於left,我們賦值為9,後面是right,所以它的值是10。

【例2-13】列舉識別符號例項。

#import <

foundation/foundation.h>

int main (int argc, const char * argv) ;

enum direction mydirection;

mydirection = right;

nslog (@"%i",mydirection) ;

mydirection = down;

nslog (@"%i",mydirection) ;

[pool drain];

return 0;

}

【程式結果】

1  

10

還有乙個要指出的是,列舉值可以被用來作判斷比較,比如:

if(mydirection == right)… 

C與Objective C中的列舉 位移列舉

1.在c語言 中我們用到一串有關聯,被當作判斷狀態依據的常量時,會用到列舉enum,其使用 enum week 預設情況mon 0 後面依次加1,也可以自己指定 enum week 這樣mon 1 後面依然依次加1.2.在objective c 中,因為版本,有幾種實用列舉的樣式。使用c語言樣式 e...

關於objective c中類的組合

關於objective c中類的組合問題,我們先來看一道題 1.設計2個類,類之間的關係自擬 比如繼承 組合 1 身材資料 1 屬性 身高 體重 手長 腳長 2 方法 屬性相應的set和get方法 2 人 1 屬性 年齡 身高 體重 手長 腳長 2 方法 屬性相應的set和get方法 思路 在這道題...

Objective C 中的類和物件

在objc4 532.2以後,蘋果把nsobject的實現也挪進來了。想要了解nsobject底層實現終於不用去摳gnustep了 好了,下面正文 runtime裡面,宣告了id和class的型別,簡化一下如下 1 2 3 4 5 6 7 8 9 structobjc class structobj...