跟著洲洲哥一塊學(xué)習(xí)Swift-枚舉

本文首發(fā)地址

Swift-枚舉

枚舉定義了一個(gè)通用類型的一組相關(guān)的值价脾,使你可以在你的代碼中以一個(gè)安全的方式來使用這些值羽莺。

OC的枚舉寫法

typedef enum  {
    checkNetWorkStateUnknown = 0,   // 沒有網(wǎng)絡(luò)
    checkNetWorkStateReachable ,     // 沒有網(wǎng)絡(luò)
    checkNetWorkStateViaWWAN ,       // 手機(jī)自帶網(wǎng)絡(luò)
    checkNetWorkStateWiFi,                    // WIFI狀態(tài)
} NetWorkState;
 */
enum CompassPoint { 
    case North 
    case South 
    case East 
    case West 
} 
//Swift用Case來確認(rèn)情況區(qū)分
還可以這樣
enum Planet {
    case Mercury,Venus,Earth
}
//調(diào)用(直接用點(diǎn)語法)
var directHead = CompassPoint.West


/*directionToHead的類型被推斷當(dāng)它被CompassPoint的一個(gè)可能值初始化。一旦directionToHead被聲明為一個(gè)CompassPoint猬错,你可以使用更短的點(diǎn)(.)語法將其設(shè)置為另一個(gè)CompassPoint的值:
 */
directHead = .East

* 匹配枚舉值和Switch語句

let direcrt = Planet.Mercury

switch direcrt {
case .Mercury:
    print("----north")
case .Venus:
    print("----West")
default:
    print("------Defsult")
}

關(guān)聯(lián)值(Associated Values)

你可以定義 Swift 的枚舉存儲(chǔ)任何類型的關(guān)聯(lián)值窗看,如果需要的話,每個(gè)成員的數(shù)據(jù)類型可以是各不相同的倦炒。枚舉的這種特性跟其他語言中的可辨識(shí)聯(lián)合(discriminated unions)显沈,標(biāo)簽聯(lián)合(tagged unions),或者變體(variants)相似。

enum Barcode {
    case UPDA(Int,Int,Int)
    case QRCode(String)
}
// 調(diào)用
var productBarcode = Barcode.UPDA(12, 12, 34)
productBarcode = .QRCode("1345678820")
//判斷productBarcode是屬于哪一個(gè)情況
switch productBarcode {
case .UPDA(let numberSystem,let identifier,let check):
    print("UPC-A with value of \(numberSystem), \(identifier), \(check).")
case .QRCode(let produceCode):
    print("-----\(produceCode)")

}

/*
 如果一個(gè)枚舉成員的所有關(guān)聯(lián)值被提取為常量拉讯,或者它們?nèi)勘惶崛樽兞康咏剑瑸榱撕?jiǎn)潔,你可以只放置一個(gè)var或者let標(biāo)注在成員名稱前:
 */
switch productBarcode {
case  let .UPDA( numberSystem, identifier, check):
    print("UPC-A with value of \(numberSystem), \(identifier), \(check).")
case let  .QRCode( produceCode):
    print("-----\(produceCode)")
}

原始值(Raw Values)

在關(guān)聯(lián)值小節(jié)的條形碼例子中演示了一個(gè)枚舉的成員如何聲明它們存儲(chǔ)不同類型的關(guān)聯(lián)值魔慷。作為關(guān)聯(lián)值的替代只锭,枚舉成員可以被默認(rèn)值(稱為原始值)預(yù)先填充,其中這些原始值具有相同的類型院尔。

enum NetState: Int {
    case WIFI = 0, fffffff, GPRS
}
// //使用枚舉成員的rawValue方法可以訪問該枚舉成員的原始值:
NetState.WIFI.rawValue //0
NetState.fffffff.rawValue// 1
NetState.GPRS.rawValue // 2

//使用枚舉的init(rawValue: index)方法來試圖找到具有特定原始值的枚舉成員蜻展。

NetState.init(rawValue: 2)?.rawValue
NOTICE:獲取枚舉數(shù)據(jù),有可能超出數(shù)據(jù)范圍邀摆,取不出任何數(shù)據(jù)纵顾。所以是可選性用 “?”

如有問題可添加我的QQ:1290925041
還可添加QQ群:234812704(洲洲哥學(xué)院)
歡迎各位一塊學(xué)習(xí)栋盹,提高逼格施逾!
也可以添加洲洲哥的微信公眾號(hào)

更多消息

更多信iOS開發(fā)信息 請(qǐng)以關(guān)注洲洲哥 的微信公眾號(hào),不定期有干貨推送:

這里寫圖片描述
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末例获,一起剝皮案震驚了整個(gè)濱河市汉额,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌躏敢,老刑警劉巖闷愤,帶你破解...
    沈念sama閱讀 217,907評(píng)論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異件余,居然都是意外死亡讥脐,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,987評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門啼器,熙熙樓的掌柜王于貴愁眉苦臉地迎上來旬渠,“玉大人,你說我怎么就攤上這事端壳「娑” “怎么了?”我有些...
    開封第一講書人閱讀 164,298評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵损谦,是天一觀的道長(zhǎng)岖免。 經(jīng)常有香客問我,道長(zhǎng)照捡,這世上最難降的妖魔是什么颅湘? 我笑而不...
    開封第一講書人閱讀 58,586評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮栗精,結(jié)果婚禮上闯参,老公的妹妹穿的比我還像新娘瞻鹏。我一直安慰自己,他們只是感情好鹿寨,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,633評(píng)論 6 392
  • 文/花漫 我一把揭開白布新博。 她就那樣靜靜地躺著,像睡著了一般脚草。 火紅的嫁衣襯著肌膚如雪赫悄。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,488評(píng)論 1 302
  • 那天馏慨,我揣著相機(jī)與錄音涩蜘,去河邊找鬼。 笑死熏纯,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的粤策。 我是一名探鬼主播樟澜,決...
    沈念sama閱讀 40,275評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼叮盘!你這毒婦竟也來了秩贰?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,176評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤柔吼,失蹤者是張志新(化名)和其女友劉穎毒费,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體愈魏,經(jīng)...
    沈念sama閱讀 45,619評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡觅玻,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,819評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了培漏。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片溪厘。...
    茶點(diǎn)故事閱讀 39,932評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖牌柄,靈堂內(nèi)的尸體忽然破棺而出畸悬,到底是詐尸還是另有隱情,我是刑警寧澤珊佣,帶...
    沈念sama閱讀 35,655評(píng)論 5 346
  • 正文 年R本政府宣布蹋宦,位于F島的核電站,受9級(jí)特大地震影響咒锻,放射性物質(zhì)發(fā)生泄漏冷冗。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,265評(píng)論 3 329
  • 文/蒙蒙 一虫碉、第九天 我趴在偏房一處隱蔽的房頂上張望贾惦。 院中可真熱鬧,春花似錦、人聲如沸须板。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,871評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽习瑰。三九已至绪颖,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間甜奄,已是汗流浹背柠横。 一陣腳步聲響...
    開封第一講書人閱讀 32,994評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留课兄,地道東北人牍氛。 一個(gè)月前我還...
    沈念sama閱讀 48,095評(píng)論 3 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像烟阐,于是被迫代替她去往敵國(guó)和親搬俊。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,884評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容