08.10

作者: 喜剧收尾_XWX | 来源:发表于2020-08-10 12:36 被阅读0次

1.什么是kvo?

  • KVO全称KeyValueObserving,是苹果提供的一套事件通知机制。允许对象监听另一个对象特定属性的改变,并在改变时接收到事件。一般继承自NSObject的对象都默认支持KVO。
  • KVONSNotificationCenter都是iOS中观察者模式的一种实现。区别在于,相对于被观察者和观察者之间的关系,KVO是一对一的,而不一对多的。KVO对被监听对象无侵入性,不需要修改其内部代码即可实现监听。
  • KVO可以监听单个属性的变化,也可以监听集合对象的变化。通过KVC的mutableArrayValueForKey等方法获得代理对象,当代理对象的内部对象发生改变时,会回调KVO监听的方法。集合对象包含NSArray和NSSet。

2.如何使用kvo?

使用KVO分为三个步骤:

  • 通过addObserver:forKeyPath:options:context:方法注册观察者,观察者可以接收keyPath属性的变化事件。
  • 在观察者中实现observeValueForKeyPath:ofObject:change:context:方法,当keyPath属性发生改变后,KVO会回调这个方法来通知观察者。
  • 当观察者不需要监听时,可以调用removeObserver:forKeyPath:方法将KVO移除。需要注意的是,调用removeObserver需要在观察者消失之前,否则会导致Crash。

相关文章

  • 08.10

    很累,在家收拾。然后追剧,然后在外面吃饭,逛东郊记忆,然后回家。

  • 08.10

    我讨厌那里

  • 08.10

    1.什么是kvo? KVO全称KeyValueObserving,是苹果提供的一套事件通知机制。允许对象监听另一个...

  • 2016.08.09/08.10

    今天中午回出租屋的途中遇见了上个月在心电图室实习时认识的一位轮科医师,只见她戴着个蓝色的口罩,骑着辆粉红色的折叠车...

  • 我的日常计划6月9日(雨)

    08.10——08:30 写计划感想 09:00——10:00 看书 10:20——11:30 软考高...

  • 阿里云

    08.09 王坚加入阿里08.10 启动“飞天”09.10 飞天上线使用10.03 飞天稳定10-12 艰苦长征3...

  • 暑假记录2022.08.08—08.10

    这次又有两天没记录了,今天一起补上。8月8号是又一周的开始,我和大宝的计划也做了一些调整,因为她老是不想主动...

  • 医院陪床记(08.10)

    今天是妈妈住院的第二天,今天的状况比昨天好多了。血糖降低了不少,精神气也有了好转。心里甚是欣慰! 陪床真是个累活,...

  • 我们生活的世界:自我、他人和公共生活世界

    2016.08.08 - 08.10 周志羿 导言 为什么哲学不能用普及这个词? 发问方向:显而易见的东西 思考方...

  • 2.0亲子践行59/90

    2019-08.10 打卡天数:Day59 #不吼不叫做温柔父母# 菠萝8月目标: 早睡早起10:00-6:30 ...

网友评论

      本文标题:08.10

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