通知和kvo以及代理的区别

三者都可以实现控制器之间的传值,但他们之间的侧重点不同。

一、NSNotification和kvo

同:1、两者的实现原理都是观察者模式,都用于监听操作。

2、都能实现一对多的操作。

异:1、KVO只能用于监听对象属性的变化。

2、NSNotification的发送监听的操作我们可以控制,kvo者由系统控制。

3、KVO可以记录变化新旧值。

二、NSNotification和Delegate

同:可以实现控制器之间的传值

异:1、NSNotification可以实现一对多,代理则是一对一。

2、代理可以把结果返回,NSNotification只是单向操作,不关心返回。

3、NSNotification的耦合度更低,跨域通信更广。


你可能感兴趣的:(ios)