研究对象
- 一个基类
- 一个子类
设置背景
- 下面针对同一个被观察者对象及被观察keyPath
- 基类中注册KVO观察者
- 基类中实现KVO响应方法
- 子类中再次实现KVO响应方法
实验手段
激活响应:
让被观察者对象的被观察键值发生变化
实验结果
响应执行顺序:
- 先执行子类的KVO响应实现
- 后执行基类的KVO响应实现
拓展区分
- 基类子类这样的两个类可分别实现同一个KVO响应
- 同一个类不可实现同一个KVO响应多次,编译器会报错,如下图所示
报错
其中,报错内容为:
Duplicate declaration of method 'observeValueForKeyPath:ofObject:change:context:'
原因是不允许重复声明。