KVC/KVO
Posted wangziqiang123
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KVC/KVO相关的知识,希望对你有一定的参考价值。
KVC
- 全称:Key Value Coding(键值编码)
- 赋值
|
|
- 取值
|
|
- KVC的底层实现
|
|
KVO
- 全称:Key Value Observing(键值监听)
- 作用:监听模型的属性值改变
- 步骤
- 添加监听器
- KVO是一个观察者模式。观察一个对象的属性,注册一个指定的路径,若这个对象的的属性修改,则KVO会自动通知观察者。
|
|
- 在监听器中实现监听方法
|
|
KVO的观察者是由两种模式的。一种是自动通知,一种是手动通知。
自动通知自动监听对象的属性,不管这个属性的前后属性变化的值是否一样,都会通知观察者。
手动通知重写willChangeValueForKey:和didChangeValueForKey: 方法通知观察者。
一般都是用自动通知,方便快捷。
下面两种写法,都会举例说明。
自动通知,主要看监听回调的分析
场景:模拟人年龄的变化,看接受通知的次数
|
|
- 手动通知
场景:模拟人年龄的变化,看接受通知的次数
需要在Person类里面重写方法,具体看实现代码
|
|
- Person类的实现
|
|
- 观察了自动通知和手动通知,各有所长。
注意: 手动通知必须重写方法,只有新旧值前后不一样才会通知。自动通知就不管新旧值是否一样,都说告诉观察者。
以上是关于KVC/KVO的主要内容,如果未能解决你的问题,请参考以下文章