Swift-Then協(xié)議庫-絕妙的初始化方式

今天無意下載了別人swift編寫的項目,看到了Then 這個庫,懷著一顆好奇的心嫡纠,覺得好好研究一番张吉,搜了一下公眾號SwiftGG翻譯組的文章《Swift:讓人眼前一亮的初始化方式》,自己動手敲了一篇,只能說,手感真特么爽。

  • 先看看比較普通的寫法,最普通的就不說了,先看這種通過Block創(chuàng)建對象的寫法,優(yōu)點:代碼整合在一個閉包里面,可讀性炒雞強痹扇。
1.無參數(shù)悯舟,無需命名担租,用$0取參數(shù),可自動聯(lián)想屬性(推薦使用)
  //  使它可用于設(shè)置屬性初始化后與閉包。
  //  Makes it available to set properties with closures just after initializing.
  let label = UILabel().then {
        $0.text = "myLabel"
        $0.textColor = UIColor.red
        $0.font = UIFont.systemFont(ofSize: 18)
        $0.center = self.view.center
        $0.bounds = CGRect(x: 0, y: 0, width: 100, height: 50)
    }
    self.view.addSubview(label)
  • 在Block外初始化一個對象,再傳進閉包進行設(shè)值,統(tǒng)一用取參數(shù)對象,不用再去煩如何命名了抵怎。當(dāng)然也可以命名,參考后文的寫法 不過有個缺點:里面的$0沒法自動聯(lián)想出屬性,手敲幾行代碼你就會藍(lán)瘦香菇.

  • 大概理解上面的代碼后,接著再看使用Then協(xié)議庫的初始化寫法,比上面的代碼更簡潔,不用寫return了,而且里面的$0還能自動聯(lián)想奋救。優(yōu)點:暫時沒有吐槽點

2.帶參數(shù),可自行命名
  let label2 = UILabel().then { (lab) in
        lab.text = "第二個Label"
        lab.textColor = UIColor.orange
        lab.font = UIFont.systemFont(ofSize: 18.0)
        lab.center = self.view.center
        lab.bounds = CGRect(x: 0, y: 0, width: 80, height: 80)
    }
    self.view.addSubview(label2)
其實Then協(xié)議庫只有十幾行代碼,但是能帶來非常好的體驗感,簡約實用,不會出現(xiàn)循環(huán)引用便贵。一個好的協(xié)議庫菠镇,當(dāng)然要值得學(xué)習(xí)哦!
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末承璃,一起剝皮案震驚了整個濱河市利耍,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌盔粹,老刑警劉巖隘梨,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異舷嗡,居然都是意外死亡轴猎,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門进萄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來捻脖,“玉大人锐峭,你說我怎么就攤上這事】缮簦” “怎么了沿癞?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵,是天一觀的道長矛渴。 經(jīng)常有香客問我椎扬,道長,這世上最難降的妖魔是什么具温? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任蚕涤,我火速辦了婚禮,結(jié)果婚禮上铣猩,老公的妹妹穿的比我還像新娘揖铜。我一直安慰自己,他們只是感情好达皿,可當(dāng)我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布蛮位。 她就那樣靜靜地躺著,像睡著了一般鳞绕。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上尸曼,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天们何,我揣著相機與錄音,去河邊找鬼控轿。 笑死冤竹,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茬射。 我是一名探鬼主播鹦蠕,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼在抛!你這毒婦竟也來了钟病?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤刚梭,失蹤者是張志新(化名)和其女友劉穎肠阱,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體朴读,經(jīng)...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡屹徘,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了衅金。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片噪伊。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡簿煌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出鉴吹,到底是詐尸還是另有隱情姨伟,我是刑警寧澤,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布拙寡,位于F島的核電站授滓,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏肆糕。R本人自食惡果不足惜般堆,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望诚啃。 院中可真熱鬧淮摔,春花似錦、人聲如沸始赎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽造垛。三九已至魔招,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間五辽,已是汗流浹背办斑。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留杆逗,地道東北人乡翅。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓,卻偏偏與公主長得像罪郊,于是被迫代替她去往敵國和親蠕蚜。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 42,722評論 2 345

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

  • 1悔橄、通過CocoaPods安裝項目名稱項目信息 AFNetworking網(wǎng)絡(luò)請求組件 FMDB本地數(shù)據(jù)庫組件 SD...
    陽明先生_x閱讀 15,968評論 3 119
  • 1. 數(shù)據(jù)庫的設(shè)置 Django默認(rèn)有自帶的數(shù)據(jù)庫靶累,當(dāng)需要用其他數(shù)據(jù)庫時需要修改設(shè)置,這里用MySQL示范首先確認(rèn)...
    依舊丶森閱讀 285評論 0 0
  • 一些需要使用到的簡單命令——升級之后發(fā)現(xiàn)flask不能使用了 因為當(dāng)時升級了3.5 所以我重新使用pip3 ins...
    XX杰閱讀 12,880評論 2 4
  • 如今小黃車越來越流行癣疟,十七歲還不會騎車的尺铣,我準(zhǔn)備和媽媽一起去湖邊練習(xí)。 微風(fēng)從臉頰滑過争舞,如同絲綢滑過肌膚之間的柔軟...
    笛夕閱讀 388評論 0 2
  • 深夜第N更 只因今晚吃得太晚吃得太多吃得太飽凛忿,無法入睡(這不傻吧?)閑來無事更更書… 最近竞川?挺好… 真的挺好店溢。左小...
    左小圈閱讀 299評論 0 0