淺入淺出Protocols & Extensions--Swift語法學(xué)習(xí)

Swift Syntax L2 -- Udacity 筆記

目錄:
1.淺入淺出Optional type
2.淺入淺出Protocols & Extensions(所在章節(jié))
3.淺入淺出Closures Expressions
以上章節(jié)簡介:淺入淺出Swift語法


Protocols & Extensions

前言

Protocol是實(shí)施委托模式的基礎(chǔ)
好了開始寫Protocol的筆記了.

文章結(jié)構(gòu):
Protocol:
1.什么是Protocol?
2.怎么用?
3.要它何用?
Extension:
1.Extension有什么用?
2.咋用但金?
Protocol的進(jìn)階用法:
利用Extension提供method的default定義

首先來一個(gè)問題

什么是Protocol?

Protocal中文翻譯為協(xié)議
就是雙方必需準(zhǔn)守的意思值骇。

Protocol主要是用來規(guī)定Class
使用了ProtocolClass在定義時(shí):這Class里面一定要定義Protocol里面寫下的methodPropertity

怎么用?

定義協(xié)議protocol name {}
如下:

protocol MustSaySomeThing {
    func hello() -> Void
    func bye() -> Void
}

那么Class 則在繼承那里寫下要遵守的Protocol,如下:

class Roommate: MustSaySomeThing {
    func hello() -> Void {
        //么么噠
    }
    
    func bye() -> Void{
        //再見
    }
}

遵守protocolMustSaySomeThingRoommate必!須!得!定!義!MustSaySomeThing一樣的method

假如沒定義hello(),就如下圖產(chǎn)生Error:

error

同時(shí),Protocol也是一種類型,于是就可以如下面代碼:

//班長 必須得說話    
var BanZhang : MustSaySomeThing?

要它何用?

通過Protocol就可以構(gòu)建iOS里面用得比較多的委托模式
如圖:

委托模式

Master可以將它要執(zhí)行的methodhello()通過Protocol委托出去給Detail來定義hello()里面的內(nèi)容。

在Master里面定義delegate必需遵守protocol要糊,如下就實(shí)現(xiàn)了delegate

var delegate : protocol?

protocol的解釋就完了,下面有protocol的進(jìn)階用法妆丘。不過首先來了解一下Extension

Extension

Extension 是什么锄俄?

是Extension的使用就是能在原有的Class里面追加定義一些method或者propertity。
如圖:


示意圖

咋用勺拣?

語法extension 要添加的Class的名字 {}
例如奶赠,為上面的Roommate類添加thankU method

extension Roommate{
    func thankU() -> Void{
        //謝謝你
    }
}

let me = Roommate()
me.thankU()//謝謝你

到這里,關(guān)于Protocol&Extension的基本用法就介紹完了药有。下篇文章將介紹Swift Closure的用法與及縮略的寫法

接下來就是高階用法:利用Extension提供method的default定義

Protocol的進(jìn)階用法:

利用Extension提供method的默認(rèn)(default)定義:

使用語法:extension Protocol的名字{}
然后就是看代碼:

protocol MustSaySomeThing {
    func hello() -> Void
    func bye() -> Void
}

extension MustSaySomeThing{
    func hello() -> Void{
        //么么噠
    }
    func bye() -> Void{
        //再見
    }
}

class Roommate: MustSaySomeThing {
    func bye() -> Void{
        //good bye 永遠(yuǎn)不見
    }
    
}

let me = Roommate()
me.hello() //么么噠
me.bye() //good bye 永遠(yuǎn)不見

如上代碼:
MustSaySomeThingProtocol默認(rèn)定義hello()毅戈。

這樣的話,Class Roommate里就可以不用定義hello()和bye()

除非你不想要Protocol默認(rèn)的定義愤惰,例如bye()

參考鏈接:Analyzing Swift Protocol Extensions and C# Abstract Classes

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末苇经,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子羊苟,更是在濱河造成了極大的恐慌,老刑警劉巖感憾,帶你破解...
    沈念sama閱讀 206,602評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蜡励,死亡現(xiàn)場離奇詭異令花,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)凉倚,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,442評論 2 382
  • 文/潘曉璐 我一進(jìn)店門兼都,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人稽寒,你說我怎么就攤上這事扮碧。” “怎么了杏糙?”我有些...
    開封第一講書人閱讀 152,878評論 0 344
  • 文/不壞的土叔 我叫張陵慎王,是天一觀的道長。 經(jīng)常有香客問我宏侍,道長赖淤,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,306評論 1 279
  • 正文 為了忘掉前任谅河,我火速辦了婚禮咱旱,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘绷耍。我一直安慰自己吐限,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,330評論 5 373
  • 文/花漫 我一把揭開白布褂始。 她就那樣靜靜地躺著诸典,像睡著了一般。 火紅的嫁衣襯著肌膚如雪病袄。 梳的紋絲不亂的頭發(fā)上搂赋,一...
    開封第一講書人閱讀 49,071評論 1 285
  • 那天,我揣著相機(jī)與錄音益缠,去河邊找鬼脑奠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛幅慌,可吹牛的內(nèi)容都是我干的宋欺。 我是一名探鬼主播,決...
    沈念sama閱讀 38,382評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼胰伍,長吁一口氣:“原來是場噩夢啊……” “哼齿诞!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起骂租,我...
    開封第一講書人閱讀 37,006評論 0 259
  • 序言:老撾萬榮一對情侶失蹤祷杈,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后渗饮,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體但汞,經(jīng)...
    沈念sama閱讀 43,512評論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡宿刮,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,965評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了私蕾。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片僵缺。...
    茶點(diǎn)故事閱讀 38,094評論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖踩叭,靈堂內(nèi)的尸體忽然破棺而出磕潮,到底是詐尸還是另有隱情,我是刑警寧澤容贝,帶...
    沈念sama閱讀 33,732評論 4 323
  • 正文 年R本政府宣布自脯,位于F島的核電站,受9級特大地震影響嗤疯,放射性物質(zhì)發(fā)生泄漏冤今。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,283評論 3 307
  • 文/蒙蒙 一茂缚、第九天 我趴在偏房一處隱蔽的房頂上張望戏罢。 院中可真熱鬧,春花似錦脚囊、人聲如沸龟糕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,286評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讲岁。三九已至,卻和暖如春衬以,著一層夾襖步出監(jiān)牢的瞬間缓艳,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,512評論 1 262
  • 我被黑心中介騙來泰國打工看峻, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留阶淘,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 45,536評論 2 354
  • 正文 我出身青樓互妓,卻偏偏與公主長得像溪窒,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子冯勉,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,828評論 2 345

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