亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS開發之枚舉用法小結

2020-07-26 03:09:59
字體:
來源:轉載
供稿:網友

前言

Enum,也就是枚舉,從C語言開始就有了,C++、Java、Objective-C、Swift這些語言,當然都有對應的枚舉類型,功能可能有多有少,但是最核心的還是一個―規范的定義代碼中的狀態、選項等“常量”。

舉個例子,我們想要在開發中根據四季的變化做不同的操作,我們首先想到的可能會是定義一個int型變量,通過為該變量賦不同的值來表示四季(e.g. 1為春天,2為夏天,3為秋天,4為冬天).但是,對于閱讀該份代碼的人來講,他們并不能在短時間內就明白數字1234所代表的具體含義.這個時候,選擇使用枚舉則可以應對該需求

C語言中的枚舉

在C語言中定義枚舉類型的方式如下

enum 枚舉名稱{  標識符 = 整型常量,  標識符 = 整型常量,  標識符 = 整型常量,  標識符 = 整型常量};

以"定義一個枚舉名稱為Test,擁有TestA、TestB等枚舉成員的枚舉類型"為例,定義方式如下

enum Test{  TestA = 0,  TestB = 1,  TestC = 2,  TestD = 3};

    注1: 當枚舉成員都未設置"=整型常量"時,默認從第一個標識符開始,從0依次遞增加1

    注2: 當為某個枚舉成員設置"=整型常量"時,其后面的標識符會在此基礎上依次遞增加1

在使用該枚舉類型時,我們需要創建一個枚舉變量

enum 枚舉名稱 枚舉變量 = 枚舉變量值;

以"創建一個枚舉名稱為Test的枚舉變量test,并為其賦值TestB"為例

enum Test test = TestB;

注: 枚舉變量值的取值只能從對應枚舉類型的枚舉成員中選擇

我們也可以在定義枚舉類型的同時定義枚舉變量,該枚舉變量不用初始化,可直接對其進行賦值并使用

enum Test{  TestA = 0,  TestB,  TestC,  TestD} test;

注: 該枚舉名稱可以省略,直接定義枚舉變量即可(稱作"匿名枚舉")

通過typedef為枚舉類型設置一個"別名",這樣便可以像使用int一樣使用枚舉類型

typedef enum _Test{  TestA = 0,  TestB,  TestC,  TestD} Test;

定義"別名"后,便可采用如下方式定義枚舉變量

Test test = TestB;

針對匿名枚舉,在通過typedef設置"別名"便變成如下形式

typedef enum{  TestA = 0,  TestB,  TestC,  TestD} Test;

定義"別名"后,便可采用如下方式定義枚舉變量

Test test = TestB;

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_OPTIONS(NSUInteger, Test) {  TestNone = 0,  TestA = 1 << 0,  TestB = 1 << 1,  TestC = 1 << 2,  TestD = 1 << 3};

帶有移位運算的枚舉多用于同一個枚舉變量可以同時賦值多個枚舉成員的情況,其原理就是將各個枚舉值按位或(|),因為移位運算的枚舉成員可以保證按位或(|)計算之后結果的唯一性,所以每種結果都能反向計算出是由哪幾個枚舉成員按位或(|)而成

以"使用按位或(|)為枚舉變量test同時賦值枚舉成員TestA、TestB與TestC"為例

Test test = TestA | TestB;test |= TestC;

以"使用按位異或(^)為枚舉變量test去掉一個枚舉成員TestC"為例

Test test = TestA | TestB | TestC;test ^= TestC;

注: 如果枚舉變量test本身并未賦值TestC,那么使用按位異或(^)會為枚舉變量test多賦值一個枚舉成員TestC
以"使用按位與(&)判斷枚舉變量test是否賦值了枚舉成員TestA"為例

Test test = TestA | TestB;if (test & TestA){  NSLog(@"yes");}else{  NSLog(@"no");}

總結

以上就是這篇文章的全部內容了,希望能對大家的學習或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品久久久久秋霞鲁丝| 精品美女永久免费视频| 国内精品小视频| 欧美专区在线视频| 成人久久久久久| 久久99亚洲精品| 国产成一区二区| 国产视频精品免费播放| 国产午夜精品久久久| 久久天天躁狠狠躁夜夜躁| 精品国产网站地址| 日韩成人av在线播放| 欧美日本国产在线| 亚洲影影院av| 欧美丰满老妇厨房牲生活| 亚洲人成网在线播放| 久久国产精品视频| 亚洲色图25p| 精品亚洲一区二区三区四区五区| 欧美成年人视频网站| 国产盗摄xxxx视频xxx69| 久久视频在线免费观看| 久久99热这里只有精品国产| 日本老师69xxx| 青草青草久热精品视频在线观看| 日韩高清电影免费观看完整| 亚洲第一偷拍网| 在线精品视频视频中文字幕| 97免费中文视频在线观看| 国产精品露脸av在线| 久久久久久国产精品美女| 亚洲国产97在线精品一区| 亚洲va久久久噜噜噜久久天堂| 91极品视频在线| 国产精品视频精品视频| 亚洲第一av网站| 国产一区二区丝袜| 国产91热爆ts人妖在线| 成人福利视频在线观看| 国产成人短视频| 亚洲精品国产精品久久清纯直播| 亚洲品质视频自拍网| 日韩福利视频在线观看| 亚洲第一av网站| 91精品国产91久久久久久久久| 亚洲福利在线观看| 国产一区二区黄| 91精品国产777在线观看| 好吊成人免视频| 欧美性xxxxx| 亚洲性生活视频在线观看| 久久久久亚洲精品| 色爱av美腿丝袜综合粉嫩av| 色噜噜狠狠色综合网图区| 91av成人在线| 日韩欧美在线免费观看| 57pao成人永久免费视频| 日韩在线免费视频观看| 欧美午夜精品久久久久久久| 91夜夜未满十八勿入爽爽影院| 亚洲精品99久久久久中文字幕| 国产精品av在线播放| 久久人人97超碰精品888| 成人羞羞国产免费| 777午夜精品福利在线观看| 亚洲精品美女久久久久| 性色av香蕉一区二区| 欧美午夜美女看片| 日本视频久久久| 色老头一区二区三区在线观看| 久久视频在线播放| 色综合久久中文字幕综合网小说| 91情侣偷在线精品国产| 日韩美女写真福利在线观看| 欧美肥老妇视频| 国产亚洲视频在线观看| 欧美巨乳在线观看| 成人久久一区二区| 精品视频在线导航| 日韩国产精品视频| 在线免费观看羞羞视频一区二区| 久久中文字幕在线视频| 国产精品高潮在线| 日韩亚洲精品电影| 日韩高清中文字幕| 中文字幕亚洲一区二区三区五十路| 中文字幕精品久久| 国产精品第一页在线| 日韩精品中文字幕有码专区| 亚洲影视九九影院在线观看| xvideos亚洲人网站| 国产亚洲xxx| 欧美在线观看网址综合| 欧美专区在线视频| 精品丝袜一区二区三区| 亚洲欧美精品一区二区| 97免费中文视频在线观看| 国产91成人在在线播放| 欧美疯狂做受xxxx高潮| 国产精品视频26uuu| 亚洲在线视频福利| 亚洲国产福利在线| 日韩精品在线电影| 97超级碰在线看视频免费在线看| 欧美午夜视频一区二区| 亚洲精品久久视频| 日韩精品在线免费播放| 成人午夜高潮视频| 亚洲免费视频观看| 亚洲欧美一区二区三区在线| 国产精品久久久91| 久久久人成影片一区二区三区观看| 日韩免费观看在线观看| 久久99精品久久久久久青青91| 日本免费在线精品| 日韩经典一区二区三区| 日韩乱码在线视频| 国产精品都在这里| 日韩在线观看网站| 欧美成人手机在线| 国产丝袜高跟一区| 一区二区三区国产在线观看| 久久久精品一区| 久久免费国产精品1| 亚洲国产精品久久精品怡红院| 色噜噜狠狠狠综合曰曰曰88av| 国产成人97精品免费看片| 91探花福利精品国产自产在线| 亚洲精品日韩丝袜精品| 91久热免费在线视频| 国产精品自拍视频| 亚洲丁香久久久| 国内免费久久久久久久久久久| 成人福利视频在线观看| 亚洲欧美日韩国产成人| 日韩福利伦理影院免费| 亚洲精品久久久一区二区三区| 日韩精品有码在线观看| 亚洲激情自拍图| 久久精品国产久精国产思思| 日韩美女写真福利在线观看| 午夜精品视频网站| 欧美亚洲午夜视频在线观看| 日韩电影中文字幕一区| 亚洲国产一区二区三区在线观看| 国产精品99久久久久久人| 欧美激情亚洲精品| 国产婷婷97碰碰久久人人蜜臀| 久久99久久久久久久噜噜| 久久免费精品日本久久中文字幕| 欧美日韩色婷婷| 国产精品国产自产拍高清av水多| 狠狠躁18三区二区一区| 日韩av中文在线| 欧美超级免费视 在线| 欧美在线免费看| 美日韩精品免费视频| 国产精品美女无圣光视频| 91夜夜未满十八勿入爽爽影院| 久久中文字幕一区| 日韩美女写真福利在线观看| 日韩av在线一区二区| 亚洲精品久久久久久下一站| 96精品视频在线|