面试

如何手动触发一个value的KVO

2016-04-23  本文已影响798人  一块儿钱

所谓的“手动触发”是区别于“自动触发”:

自动触发是指类似的这种场景:
在注册KVO之前设置一个初始值,
注册之后设置一个不一样的值,就可以触发了。

想知道如何手动触发,必须知道自动触发KVO的原理:

键值观察通知依赖于NSObject的两个方法:
willChangeValueForKey:和didChangeValueForKey:。
在一个被观察属性发生改变之前,willChangeValueForKey:一定会被调用,这就会记录旧的值。
而当改变发生后,didChangeValueForKey:会被调用,
继而objectServeValueForKey:ofObject:change:content:也会被调用。
如果可以手动实现这些调用,就可以实现“手动触发”了。

转载自《猿圈》

那么“手动触发”的使用场景是什么?一般我么只在希望能控制“回调的调用时机”时才会这样做。

</br>
</br>

[专注待办](https://itunes.apple.com/cn/app/zhuan-zhu-dai-ban-ding-shi/id1103227570?mt=8)
上一篇下一篇

猜你喜欢

热点阅读