【iOS】键值编码KVC和键值观察KVO

键值编码KeyValveCoding

KVC是一种在NSKeyValueCoding协议下使用一个唯一的字符串(key)来访问对象属性(value)的机制。KVC可以暴力访问对象的任意变量,包括private类型。NSObject类继承了该协议,所以NSObject的子类都可使用该方法。

使用方法如下

1、先声明一个继承于NSObject的Student类和Major类

Student类的私有变量有name、age、gender。属性有grade、score、major

Major类的私有变量有majorName。

Student类


Major类

2、通过KVC设置Stufent对象的值,强行设置private变量

需要声明@property (nonatomic,strong) Student *student;

3、通过KVC读取Student对象的值,强行输出private变量的值

打印数据


键值观察KeyValveObserve

KVO是基于KVC实现的一种监听机制,当被观察者的值发生变化时会通知观察者,触发observeValueForKeyPath方法。

在Student和Major类的基础上,为major.majorNamer添加观察者。


为major.majorNamer添加观察者。


当majorName发生变化时会触发此方法。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。