KVC&KVO

FMDB

一、KVC&KVO的基本介绍

KVC(Key-Value Coding,键值编码),是一种可以通过字符串(Key值)来间接访问属性的机制。

KVO(Key-Value Observing,键值观察),它允许被观察者的属性发生变化的时候通知观察者,是基于观察者模式,借助于KVC技术实现的一套机制。

二、KVC的使用

修改值:

1
2
3
setValue:forKey
setValue:forKeyPath
setValuesForKeysWithDictionary:

获取值:

1
2
valueForKey:
valueForKeyPath:

注意事项:

1、value必须是对象
2、可以通过重写setValue:forUndefinedKey:方法处理找不到对应Key的情况。
3、可以通过将accessInstanceVariablesDirectly设置为NO来禁止通过KVC间接访问实例变量。

三、KVO的使用

注册:

1
addObserver:forKeyPath:Options:context:

实现监听方法:

1
observeValueForKeyPath:ofObject:change:context:

注销:

1
2
removeObserver:forKeyPath:
removeObserver:forKeyPath:context:

注意事项:

1、一定不要忘记注销观察者。