KVO与通知的相同点与区别

KVO和通知之间的区别需要从这几个方面来回答

:相同点,都是对象之间传递信息的一种机制 都能降低耦合性 

不同点:

1.作用范围,通知可以支持更广泛的系统事件包括属性更改,KVO 仅支持对象属性的更改,对于处理单纯的属性更改,KVO会更简单,一般用在框架中比较多 

2. 通知使用交互的广播类型,会通过通知中心集中去分发,不需要接受对象注册通知功能就可以发送,同时还支持异步传递; KVO是点对点的交互模型,当属性改变的时候,向已经注册的观察者发送消息,同时是阻塞状态

 3.通知使用名称标示,名称要具有唯一性 KVO是被观察者与观察者绑定,不会出现命名冲突


 由于这一系列的不同,所以在平常开发中,通知用得更多,而KVO主要是在自己写框架或者需要更精准获得对象属性变化的时候使用… 而手动开启一个KVO 就是常规手法了

你可能感兴趣的:(KVO与通知的相同点与区别)