美文网首页
问题:谈谈NSNotification 和 KVO 的使用场景?

问题:谈谈NSNotification 和 KVO 的使用场景?

作者: 姜小舟 | 来源:发表于2020-05-11 18:00 被阅读0次
  • NSNotification是通知,也是一对多的使用场景。在某些情况下,KVO和NSNotification是一样的,都是状态变化之后告知对方。NSNotification的特点,就是需要被观察者先主动发出通知,然后观察者注册监听后再来进行响应,比KVO多了发送通知的一步,但是其优点是监听不局限于属性的变化,还可以对多种多样的状态变化进行监听,监听范围广,使用也更灵活。
  • KVO就是cocoa框架实现的观察者模式,一般同KVC搭配使用,通过KVO可以监测一个值的变化,比如View的高度变化。是一对多的关系,一个值的变化会通知所有的观察者。

实际应用

  • Notification是弱关联,不需要知道是谁发的也可以做出相应的反应,同理发消息的人也不需要知道接收的人也可以正常发出消息。如:监测键盘、登录成功
  • KVO一般的使用场景是数据,需求是数据变化,比如股票价格变化,我们一般使用KVO(观察者模式)。如:监测进度条 上拉加载下拉刷新contentsize。

相关文章

网友评论

      本文标题:问题:谈谈NSNotification 和 KVO 的使用场景?

      本文链接:https://www.haomeiwen.com/subject/nvcpnhtx.html