1. 程式人生 > >通知和kvo以及代理的區別

通知和kvo以及代理的區別

三者都可以實現控制器之間的傳值,但他們之間的側重點不同。

一、NSNotification和kvo

同:1、兩者的實現原理都是觀察者模式,都用於監聽操作。

2、都能實現一對多的操作。

異:1、KVO只能用於監聽物件屬性的變化。

2、NSNotification的傳送監聽的操作我們可以控制,kvo者由系統控制。

3、KVO可以記錄變化新舊值。

二、NSNotification和Delegate

同:可以實現控制器之間的傳值

異:1、NSNotification可以實現一對多,代理則是一對一。

2、代理可以把結果返回,NSNotification只是單向操作,不關心返回。

3、NSNotification的耦合度更低,跨域通訊更廣。