代理

代理

概念:
一種通用的設(shè)計模式,在iOS中對代理設(shè)計模式支持的很好俺夕,有特定的語法來實現(xiàn)代理模式腾降,OC語言可以通過@Protocol實現(xiàn)協(xié)議系洛。

使用:
iOS中一種消息傳遞的方式,可以通過這種方式來傳遞一些參數(shù) .


1664979-1427879215fc20a2.png
代理的三部分組成:

協(xié)議: 指定雙方(代理方,委托方)必須做什么?

代理: 實現(xiàn) 委托方需要的幫助 ?? (根據(jù)指定的協(xié)議)

委托: 告訴代理我需要哪些幫助?? (根據(jù)指定的協(xié)議)

所以這里,雙方都需要遵守協(xié)議

協(xié)議 Protocol:

如上圖 , 可知道三方之間的關(guān)系 , 在實際應(yīng)用中通過協(xié)議來規(guī)定代理雙方的行為 ; 協(xié)議中的內(nèi)容一般都是 方法列表 搪桂,當然也可以定義 屬性 ; 協(xié)議的定義( 即書寫的方式) 可以是在某一個類里面 , 也可以是單獨拿出來作為一個單獨的文件 (當多個類使用該協(xié)議的時候) ; 就像 UITableView 那樣 從 UIScrollView 那繼承 過來代理方法: 可以獲取 UITableView 偏移量等狀態(tài)參數(shù) ; 協(xié)議只能作為一套公用的接口而存在 , 起到約束代理方和委托方的作用 , 不能實現(xiàn)具體方法 , 只能交給代理方實現(xiàn)(在委托方具體情況下傳過來需要實現(xiàn)的消息 ) ; 并且 協(xié)議可以多繼承--繼承其他多個協(xié)議 (對象不可以)

注意:
在委托方調(diào)用代理方法時都需要做一個判斷透敌,判斷代理是否實現(xiàn)當前方法,否則會導致崩潰踢械。

制定協(xié)議: 

@protocol LoginProtocol

- (void)userLoginWithUsername:(NSString *)username password:(NSString *)password;

@end


委托方調(diào)用代理方法時需要做個判斷:

if ( [ self.delegate responseToSelector : @selector ( userLoginWithUsername: password: ) ] ) {

        [    self.delegate userLoginWithUsername: self.username.text password: self.password.text  ] ;

}

實際生活中的例子去理解這個概念:

示例:假設(shè)我在公司正在敲代碼酗电,敲的正開心呢,突然口渴了内列,想喝一瓶紅茶撵术。這時我就可以拿起手機去外賣app上定一個紅茶,然后外賣app就會下單給店鋪并讓店鋪給我送過來话瞧。

這個過程中嫩与,外賣app就是我的代理,我就是委托方交排,我買了一瓶紅茶并付給外賣app錢划滋,這就是購買協(xié)議。我只需要從外賣app上購買就可以埃篓,具體的操作都由外賣app去處理处坪,我只需要最后接收這瓶紅茶就可以。我付的錢就是參數(shù)都许,最后送過來的紅茶就是處理結(jié)果稻薇。

但是我買紅茶的同時,我還想吃一份必勝客披薩胶征,我需要另外向必勝客app去訂餐塞椎,上面的外賣app并沒有這個功能。我又向必勝客購買了一份披薩睛低,必勝客當做我的代理去為我做這份披薩案狠,并最后送到我手里服傍。這就是多個代理對象,我就是委托方骂铁。

更深一點的知識關(guān)于代理 可以點擊下 原文鏈接??

參考原文: iOS中的代理設(shè)計模式

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末吹零,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子拉庵,更是在濱河造成了極大的恐慌灿椅,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钞支,死亡現(xiàn)場離奇詭異茫蛹,居然都是意外死亡,警方通過查閱死者的電腦和手機烁挟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門婴洼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撼嗓,你說我怎么就攤上這事柬采。” “怎么了且警?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵粉捻,是天一觀的道長。 經(jīng)常有香客問我振湾,道長杀迹,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任押搪,我火速辦了婚禮树酪,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘大州。我一直安慰自己续语,他們只是感情好,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布厦画。 她就那樣靜靜地躺著疮茄,像睡著了一般。 火紅的嫁衣襯著肌膚如雪根暑。 梳的紋絲不亂的頭發(fā)上力试,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機與錄音排嫌,去河邊找鬼畸裳。 笑死,一個胖子當著我的面吹牛淳地,可吹牛的內(nèi)容都是我干的怖糊。 我是一名探鬼主播帅容,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼伍伤!你這毒婦竟也來了并徘?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤扰魂,失蹤者是張志新(化名)和其女友劉穎麦乞,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體阅爽,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡路幸,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了付翁。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡晃听,死狀恐怖百侧,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情能扒,我是刑警寧澤佣渴,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站初斑,受9級特大地震影響辛润,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜见秤,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一砂竖、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧鹃答,春花似錦乎澄、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至锋八,卻和暖如春浙于,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背挟纱。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工羞酗, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人樊销。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓整慎,卻偏偏與公主長得像脏款,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子裤园,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355

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