KVO与KVO的关系

技术笔记

这两个机制的目的都是为了 解耦合 ,它们时联系和相互独立的。这样说似乎有些说不通。我们具体看一看


它们是 (联系) 还是 (独立) 取决于我们要达到的目的:

目的一:

场景介绍:紧密联系


我们的银行账户有变动的时候,银行会给我们发短信通知,这时候就是我们账户先被改变了,然后我们得到了通知。


这就好比我们的KVO的工作机制:

我们在柜台上签了一份协议书,表示我们同意账户的改变的时候通知我(注册KVO)

账户改变我们得到通知(KVO回调)

这个时候改变账户的行为必须是KVC的setValue:ForKey;
否则我们不会得到通知(不走)(KVO回调)


目的二:

场景介绍:相互独立


当我们需要一个地方的值改变时,其他地方需要同步改变的时候,这个时候 本身没有改变,只是被传递了,这种场景下只使用KVO就可以完成了,同理情况KVC也有独立使用的场景,在这里不再赘述。


原文地址:https://www.cnblogs.com/liukunpeng/p/3737510.html