M和C通过kvo联系起来,M改变,V得到通知
我有点不明白的是,V改变,M得到通知,更新M,M被修改了,然后不就反过来通知C去更新V吗?这不就变成循环了吗
1. view由button触发后通过IBOutlet在view controller调用对应的action
2. 在action中获取some label.text修改model
3. model修改后经由kvo更新UI,这里的UI不包括触发源
换句话说,触发的view controller完全没有必要observe model,只是外部关联的view controller得到model变化的事项,所以一般都会在kvo中加一个source,如果self == source直接return掉,表示你自己已经处理过了
MVC是模式,这是相对于整个工程的架构来说的,不是一个对象、一个key的关系问题;
KVO是技术,说白了就是添加一个observer而已,这个观察者就是观察他所监视的key的值value是否改变,改变了你该做什么操作就做什么操作,把他看成MVC模式是概念模糊的问题;