您好,登錄后才能下訂單哦!
通知
通知需要有一個通知中心:NSNotificationCenter,自定義通知的話需要給一個名字,然后監聽。
優點:通知的發送者和接受者都不需要知道對方。可以指定接收通知的具體方法。通知名可以是任何字符串。
缺點:較鍵值觀察(KVO)需要多點代碼,在刪掉前必須移除監聽者。
協議
通過setDelegate來設置代理對象,最典型的例子是常用的TableView.
優點:支持它的類有詳盡和具體信息。
缺點:該類必須支持委托。某一時間只能有一個委托連接到某一對象。
KVO 的優點:
當有屬性改變,KVO 會提供自動的消息通知。這樣開發人員不需要自己去實現這樣的方案:每次屬性改變了就發送消息通知。
這是 KVO 機制提供的最大的優點。因為這個方案已經被明確定義,獲得框架級支持,可以方便地采用。
開發人員不需要添加任何代碼,不需要設計自己的觀察者模型,直接可以在工程里使用。
其次,KVO 的架構非常的強大,可以很容易的支持多個觀察者觀察同一個屬性,以及相關的值。
KVC 的實現分析
KVC 運用了一個 isa-swizzling 技術。
isa-swizzling 就是類型混合指針機制。KVC 主要通過 isa-swizzling,來實現其內部查找定位的。
isa 指針,就是 is a kind of 的意思,指向維護分發表的對象的類。該分發表實際上包含了指向實現類中的方法的指針和其它數據。
http://www.isaced.com/post-201.html
http://blog.csdn.net/ajrm0925/article/details/7416419
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。