代理,通知,KVO的区别
2016-05-08 本文已影响100人
就算我心狂野
通知 NSNotification、通知中心 NSNotificationCenter
◦ 任何对象之间都可以传递消息(一般在层级结构比较深又需要传值的情况)
使用范围
▪ 1个对象可以发通知给多个对象
▪ 1个对象可以接受多个对象发出的通知
◦ 要求:必须得保证通知的名字在发出和监听时是一致的
KVO
◦ 仅仅是能监听对象属性的改变(灵活度不如通知和代理)
代理模式
使用范围
▪ 1个对象只能设置一个代理(假设这个对象只有1个代理属性)
▪ 1个对象能成为多个对象的代理
如何选择?
◦ 代理比通知规范,非常适合多人开发以及代码维护
◦ 如果要通知多个对象,就用通知
◦ 建议使用代理多于通知,能使用代理尽量使用代理
◦ 当层级结构非常深,难以拿到对应对象时使用通知
转载/iOS小孟和小梦(简书作者)原文链接:http://www.jianshu.com/p/ad94792b3c00