键值编码KeyValveCoding
KVC是一种在NSKeyValueCoding协议下使用一个唯一的字符串(key)来访问对象属性(value)的机制。KVC可以暴力访问对象的任意变量,包括private类型。NSObject类继承了该协议,所以NSObject的子类都可使用该方法。
使用方法如下
1、先声明一个继承于NSObject的Student类和Major类
Student类的私有变量有name、age、gender。属性有grade、score、major
Major类的私有变量有majorName。
2、通过KVC设置Stufent对象的值,强行设置private变量
3、通过KVC读取Student对象的值,强行输出private变量的值
键值观察KeyValveObserve
KVO是基于KVC实现的一种监听机制,当被观察者的值发生变化时会通知观察者,触发observeValueForKeyPath方法。
在Student和Major类的基础上,为major.majorNamer添加观察者。