About iOS programming: Delegate

關(guān)于Delegate設(shè)計(jì)模式. From Hacking with Swift, Project 4.

Delegate胶背,英語有兩個(gè)詞性巷嚣,

一個(gè)是動(dòng)詞,

及物動(dòng)詞: ? 委派廷粒,委托。to delegate sth. to sb. ?OR to delegate sb. to do sth.

不及物動(dòng)詞: 授權(quán). a goog manager knows how to delegate

一個(gè)是名詞, 代表红且。

A delegate is one thing acting in place of another, effectively answering questions and responding to events on its behalf. In our example, we're using WKWebView: Apple's powerful, flexible and efficient web renderer. But as smart as WKWebView is, it doesn't know (or care!) how our application wants to behave, because that's our custom code.

一個(gè)代表(delegate)就是代表坝茎,代替某個(gè)事物本身行使某些動(dòng)作暇番,響應(yīng)某些事件嗤放。為啥需要讓別的東西代表它自己呢?因?yàn)橐粋€(gè)定制好的模塊/組件/控件如何響應(yīng)事件壁酬,每個(gè)開發(fā)者都有不一樣的需求次酌。比如WKWebView恨课,在加載頁面的時(shí)候,怎樣告知用戶加載進(jìn)度岳服?有的需求希望用一個(gè)進(jìn)度條往前走剂公,有的用一個(gè)轉(zhuǎn)菊轉(zhuǎn)啊轉(zhuǎn)。那么這個(gè)就可以由一個(gè)代表去實(shí)現(xiàn)纲辽。原文是:就算是像WKWebView這么牛x,它也不知道在應(yīng)用要求它有些啥行為璃搜,因?yàn)檫@是我們定制的代碼。

The delegation solution is brilliant: we can tell WKWebView that we want to be told when something interesting happens. In our code, we're setting the web view's navigation Delegate property to self, which means "when any web page navigation happens, please tell me."

這個(gè)委托方案的牛x之處在于: 我們可以告訴WKWebView, 當(dāng)我們感興趣的事兒發(fā)生的時(shí)候绿贞,我們需要被通知到因块。比如,這里設(shè)置webview的代表為我們自己的ViewController. 就是委托ViewController來處理網(wǎng)頁瀏覽時(shí)發(fā)生的事件趾断。

When you do this, two things happen:

You must conform to the protocol. This is a fancy way of saying, "if you're telling me you can handle being my delegate, here are the methods you need to implement." In the case of navigation Delegate, all these methods are optional, meaning that we don't need to implement any methods.

Any methods you do implement will now be given control over the WKWebView's behavior. Any you don't implement will use the default behavior of WKWebView.

那么吩愧,要這么做芋酌,2件事兒:

1. 你要遵從協(xié)議。所謂協(xié)議脐帝,就是要實(shí)現(xiàn)事先約定的一些接口(Interface)堵腹。這些接口是在Delegate這個(gè)object里定義的。代碼上就是extends這個(gè)delegate接口星澳。所有的interface都是可選的疚顷,也就是我們不必實(shí)現(xiàn)所有的interface。如果不實(shí)現(xiàn)禁偎,就說明你要用WKWebView默認(rèn)的行為.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末腿堤,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子如暖,更是在濱河造成了極大的恐慌笆檀,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件盒至,死亡現(xiàn)場(chǎng)離奇詭異酗洒,居然都是意外死亡浸船,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門寝蹈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來李命,“玉大人,你說我怎么就攤上這事箫老》庾郑” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵耍鬓,是天一觀的道長(zhǎng)阔籽。 經(jīng)常有香客問我,道長(zhǎng)牲蜀,這世上最難降的妖魔是什么笆制? 我笑而不...
    開封第一講書人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮涣达,結(jié)果婚禮上在辆,老公的妹妹穿的比我還像新娘。我一直安慰自己度苔,他們只是感情好匆篓,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著寇窑,像睡著了一般鸦概。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上甩骏,一...
    開封第一講書人閱讀 49,792評(píng)論 1 290
  • 那天窗市,我揣著相機(jī)與錄音,去河邊找鬼饮笛。 笑死咨察,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缎浇。 我是一名探鬼主播扎拣,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼素跺!你這毒婦竟也來了二蓝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤指厌,失蹤者是張志新(化名)和其女友劉穎刊愚,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體踩验,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡鸥诽,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年商玫,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片牡借。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡拳昌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出钠龙,到底是詐尸還是另有隱情炬藤,我是刑警寧澤,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布碴里,位于F島的核電站沈矿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏咬腋。R本人自食惡果不足惜羹膳,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望根竿。 院中可真熱鬧陵像,春花似錦、人聲如沸犀填。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽九巡。三九已至,卻和暖如春蹂季,著一層夾襖步出監(jiān)牢的瞬間冕广,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工偿洁, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留撒汉,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓涕滋,卻偏偏與公主長(zhǎng)得像睬辐,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子宾肺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

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

  • 今天看《一轉(zhuǎn)成雙》都要炸了。恨不能沖進(jìn)屏幕里沖著那位阿姨咆哮:“這樣的男人還不離婚增拥,是留著過年嗎啄巧?” 事情原由是這...
    寧果0619閱讀 627評(píng)論 2 7
  • 讀的什么書:《如何高效閱讀》 閱讀有效時(shí)間:半小時(shí) 閱讀中遇到的困難:里面的練習(xí)題寻歧,操作難度有點(diǎn)大 閱讀有什么收獲...
    冥王hardess閱讀 100評(píng)論 0 0
  • 生活本就淡如水,但是卻又無比豐富秩仆。我們?cè)谏罾镏貜?fù)码泛,重復(fù)著每天的事,每天的話澄耍,每天的動(dòng)作弟晚,每天的行為,甚至于每天的...
    呼吸的鯨魚閱讀 234評(píng)論 0 0
  • 【引言】 《泰伯》21章逾苫,論及孔子道德思想的具體內(nèi)容和曾子在好多問題上的見解卿城,通過對(duì)堯舜禹等先王評(píng)價(jià),進(jìn)一...
    錢江潮369閱讀 607評(píng)論 0 2