开发笔记- iOS监听某些事件的方法简单梳理

----Make by -LJW 转载请注明出处--- 

  • 通知(NSNotificationCenterNSNotification)
    • 任何对象之间都可以传递消息
    • 使用范围(多对多)
      • 1个对象可以发通知给N个对象
      • 1个对象可以接受N个对象发出的通知
    • 必须得保证通知的名字在发出和监听时是一致的
 

 
  • KVO  —>涉及到需要监听对象属性的改变的时候用KVO,其它情况建议不选
    • 仅仅是能监听对象属性的改变(灵活度不如通知和代理)
 

 
  • 代理
    • 使用范围
      • 1个对象只能设置一个代理(假设这个对象只有1个代理属性)
      • 1个对象能成为多个对象的代理
    • 通知规范
    • 建议使用代理多于通知
 

 
从规范使用上,建议使用代理,因为通知必须得保证通知的名字在发出和监听时是一致的
不过代理代码量比较多,能利用代理就用代理,不过一个对象想通知多个对象只能用通知了
 
通知:
注册/取消注册通知监听器—>(被监听者)发布通知
 
代理:
(被监听者)声明协议 / 声明协议方法 / 创建代理对象 / 触发事件里判断某个对象是否实现了协议方法—>代理遵守协议 / 实现代理方法
 
  make by-LJW
原文地址:https://www.cnblogs.com/ljwiOS/p/5290175.html