Swift關(guān)于對枚舉關(guān)聯(lián)值理解

剛開始很疑惑旨枯,為啥枚舉要整個關(guān)聯(lián)值出來趟佃,用處在什么地方耸袜?
經(jīng)過的學習和思考后有了一點自己理解友多。
首先,來看一個OC寫的枚舉的例子堤框。
app跳轉(zhuǎn)一個網(wǎng)頁有兩種情況:

  1. 直接跳轉(zhuǎn)的形式
  2. 拼接token后域滥,再跳轉(zhuǎn)

先來定義個枚舉

typedef NS_ENUM(NSInteger ,PowerType) {
    Power_Type_0 = 0,//不對url做任何處理纵柿,直接加載
    Power_Type_1 = 1,//拼接token,再跳轉(zhuǎn)url
};

@interface WebViewController : UIViewController

- (instancetype)initWithPowerType:(PowerType)powerType URL:(NSString *)url token:(NSString*)token;

@end
@interface CEGWebViewController ()

@property (copy ,nonatomic) NSString *urlStr;
@property (assign ,nonatomic) PowerType powerType;
@property (copy ,nonatomic) NSString *token;

@end
@implementation WebViewController

- (instancetype)initWithPowerType:(PowerType)powerType URL:(NSString *)url token:(NSString*)token {
    if (self = [super init]) {
        self.powerType = powerType;
        self.urlStr = url;
        self.token = token;
    }
    return self;
}

- (void)viewDidLoad {
    [super viewDidLoad];
    switch (self.powerType) {
        case Power_Type_0:
            //直接用url請求網(wǎng)頁
            break;
        case Power_Type_1:
            //用url拼接token后再加載網(wǎng)頁
            break;
        default:
            break;
    }
}

@end

下面用swift的枚舉關(guān)聯(lián)值重寫上面的場景

enum PowerType {
    case directload(String)
    case joinToken(String, String)
}

class WebViewController: UIViewController {
    let powerType: PowerType!
    
    init(powerType: PowerType) {
        self.powerType = powerType
        
        super.init(nibName: nil, bundle: nil)
    }
    
    required init?(coder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        switch self.powerType {
        case .directload(let url):
            //直接用url請求網(wǎng)頁
            break
            
        case .joinToken(let url, let token):
            //用url拼接token后再加載網(wǎng)頁
            break

        case .none: break
        }
    }
}

個人理解關(guān)聯(lián)值启绰,即跟此枚舉類型相關(guān)的參數(shù)昂儒,都可以綁定到枚舉類型上,方便操作委可,不用在類一堆的屬性上來進行操作荆忍,結(jié)構(gòu)清晰!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末撤缴,一起剝皮案震驚了整個濱河市刹枉,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌屈呕,老刑警劉巖微宝,帶你破解...
    沈念sama閱讀 218,122評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異虎眨,居然都是意外死亡蟋软,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,070評論 3 395
  • 文/潘曉璐 我一進店門嗽桩,熙熙樓的掌柜王于貴愁眉苦臉地迎上來岳守,“玉大人,你說我怎么就攤上這事碌冶∈。” “怎么了?”我有些...
    開封第一講書人閱讀 164,491評論 0 354
  • 文/不壞的土叔 我叫張陵扑庞,是天一觀的道長譬重。 經(jīng)常有香客問我,道長罐氨,這世上最難降的妖魔是什么臀规? 我笑而不...
    開封第一講書人閱讀 58,636評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮栅隐,結(jié)果婚禮上塔嬉,老公的妹妹穿的比我還像新娘。我一直安慰自己租悄,他們只是感情好谨究,可當我...
    茶點故事閱讀 67,676評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著恰矩,像睡著了一般记盒。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上外傅,一...
    開封第一講書人閱讀 51,541評論 1 305
  • 那天纪吮,我揣著相機與錄音,去河邊找鬼萎胰。 笑死碾盟,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的技竟。 我是一名探鬼主播冰肴,決...
    沈念sama閱讀 40,292評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼榔组!你這毒婦竟也來了熙尉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,211評論 0 276
  • 序言:老撾萬榮一對情侶失蹤搓扯,失蹤者是張志新(化名)和其女友劉穎检痰,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體锨推,經(jīng)...
    沈念sama閱讀 45,655評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡铅歼,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,846評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了换可。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片椎椰。...
    茶點故事閱讀 39,965評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖沾鳄,靈堂內(nèi)的尸體忽然破棺而出慨飘,到底是詐尸還是另有隱情,我是刑警寧澤译荞,帶...
    沈念sama閱讀 35,684評論 5 347
  • 正文 年R本政府宣布套媚,位于F島的核電站,受9級特大地震影響磁椒,放射性物質(zhì)發(fā)生泄漏堤瘤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,295評論 3 329
  • 文/蒙蒙 一浆熔、第九天 我趴在偏房一處隱蔽的房頂上張望本辐。 院中可真熱鬧,春花似錦医增、人聲如沸慎皱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,894評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽茫多。三九已至,卻和暖如春忽刽,著一層夾襖步出監(jiān)牢的瞬間天揖,已是汗流浹背夺欲。 一陣腳步聲響...
    開封第一講書人閱讀 33,012評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留今膊,地道東北人些阅。 一個月前我還...
    沈念sama閱讀 48,126評論 3 370
  • 正文 我出身青樓,卻偏偏與公主長得像斑唬,于是被迫代替她去往敵國和親市埋。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,914評論 2 355

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