代理,通知,KVO的区别

通知 NSNotification、通知中心 NSNotificationCenter

◦ 任何对象之间都可以传递消息(一般在层级结构比较深又需要传值的情况)

使用范围

  ▪ 1个对象可以发通知给多个对象 
  ▪ 1个对象可以接受多个对象发出的通知
   ◦ 要求:必须得保证通知的名字在发出和监听时是一致的

KVO

◦ 仅仅是能监听对象属性的改变(灵活度不如通知和代理)

代理模式
使用范围

▪ 1个对象只能设置一个代理(假设这个对象只有1个代理属性) 
▪ 1个对象能成为多个对象的代理

如何选择?

◦ 代理比通知规范,非常适合多人开发以及代码维护
◦ 如果要通知多个对象,就用通知
◦ 建议使用代理多于通知,能使用代理尽量使用代理
◦ 当层级结构非常深,难以拿到对应对象时使用通知

转载/iOS小孟和小梦(作者)原文链接:http://www.jianshu.com/p/ad94792b3c00

你可能感兴趣的:(代理,通知,KVO的区别)