iOS開發(fā)-KVO與KVC、通知與代理模式

KVC:Key Value Coding

解釋意思:通過一個key去找到對應的編碼
初學者很同意搞混與KVO的區(qū)別,我提個意見最后是個C,想它就是詞,于什么有關系:詞典(NSDictiontroy)

KVO: Key Value

解釋意思:鍵值監(jiān)聽
監(jiān)聽屬性-監(jiān)聽模型屬性的改變,只要你調(diào)用它的set方法他就會調(diào)用

Paste_Image.png

實現(xiàn)監(jiān)聽方法

Paste_Image.png

Paste_Image.png

不要忘記


Paste_Image.png

通知--NSNotification

通知:1個對象可以告訴N個對象,發(fā)生了什么事(多個人發(fā)送的通知可以被多個人監(jiān)聽)

代理 --Delegate

代理:1個對象只能告訴另一個對象,發(fā)生了什么事
代理設計模式:一般用weak
1.A對象監(jiān)聽B對象的一些行為, A成為B代理
2.A對象想告訴B對象一些事情,B成為A代理
3.B對象想告訴A對象一些事情,A成為B代理
代理模式使用開發(fā)步驟:

1.擬一份協(xié)議(協(xié)議的名字:控件名+delegate),在協(xié)議里面聲明一些代理方法,代理方法一般都是@optional。

2.聲明一個代理屬性, 代理使用weak

@property (nonatomic, weak) id<代理聲明> delegate;

3.在內(nèi)部發(fā)生某些行為時,調(diào)用代理對應的代理方法,通知代理發(fā)生什么事

4.設置代理:xxx.delegate = YYY

5.某某對象遵守協(xié)議,實現(xiàn)代理方法

由于沒有指定方法,所以我們無法確定代理返回的對象中有什么樣的方法

Paste_Image.png

我們必須要提供協(xié)議

Paste_Image.png

這里面的self.delegate 就是遵守代理協(xié)議的tableView

Paste_Image.png

在控制器中:遵守代理屬性

Paste_Image.png

在控制器中:設置SUNLoadMore對象代理為控制器

Paste_Image.png

最后:實現(xiàn)代理的方法

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • *面試心聲:其實這些題本人都沒怎么背,但是在上海 兩周半 面了大約10家 收到差不多3個offer,總結起來就是把...
    Dove_iOS閱讀 27,628評論 30 472
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,653評論 19 139
  • __block和__weak修飾符的區(qū)別其實是挺明顯的:1.__block不管是ARC還是MRC模式下都可以使用,...
    LZM輪回閱讀 3,599評論 0 6
  • (一)告別 渾渾噩噩,記得我們前兩天還滿腔熱血地在聊著海賊王,我們可見在走廊里嬉戲,我還偷偷看著...
    小耳朵You閱讀 424評論 0 1
  • 張力豪閱讀 201評論 0 0

友情鏈接更多精彩內(nèi)容