- 通知(NSNotificationCenter\NSNotification)
- 任何對象之間都可以傳遞消息
- 使用范圍
- 1個對象可以發(fā)通知給多個對象
- 1個對象可以接受多個對象發(fā)出的通知
- 要求:必須得保證通知的名字在發(fā)出和監(jiān)聽時是一致的
- KVO
- 僅僅是能監(jiān)聽對象屬性的改變(靈活度不如通知和代理)
- 代理
- 使用范圍
- 1個對象只能設(shè)置一個代理(假設(shè)這個對象只有1個代理屬性)
- 1個對象能成為多個對象的代理
- 使用范圍
- 如何選擇?
代理
比通知
規(guī)范建議使用
代理
多于通知
,能使用代理盡量使用代理-
共同點
- 利用
通知
和代理
都能完成對象之間的通信
(比如A對象告訴D對象發(fā)生了什么事情, A對象傳遞數(shù)據(jù)給D對象)
- 利用
-
不同點
-
代理
:1個對象
只能告訴另1個對象
發(fā)生了什么事情 -
通知
:1個對象
能告訴N個對象
發(fā)生了什么事情,1個對象
能得知N個對象
發(fā)生了什么事情
-