底层原理 - KVO/KVC
一、KVO
1、概述
KVO的全称是KeyValueObserving,俗称“键值监听",可以用于监听某个对象属性值的改变;
KVO是苹果提供的在套事件通知机制。KVO和NSNotificationCenter都是iOS中观察者模式的一种实现,区别是:NSNotificationCenter可以是一对多的关系,而KVO是一对一的;
2、KVO的使用
使用KVO分为三个步骤:
1、注册KVO监听
通过[addObserver:forKeyPath:options:context:]方法注册KVO,这样可以接收到keyPath属性的变化事件;
2、KVO监听实现
通过方法[observeValueForKeyPath:ofObject:change:context:]实现KVO的监听;
3、移除KVO监听
在不需要监听的时候,通过方法[removeObserver:forKeyPath:],移除监听;
3、代码范例实现
注册监听:
// 给person1对象添加KVO监听属性age的变化
NSKeyValueObservingOptions options = NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld;
[self.person1 addObserver:self forKeyPath:@"age" options:options context:@"123"];
KVO监听实现: