KVO和KVC

本文介绍了Objective-C中的键值监听(KVO)和键值编码(KVC)技术。KVO是一种观察者模式,用于实现视图与数据模型的分离;KVC则允许动态地读写属性,无需直接调用setter或getter方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KVO和KVC

1 . KVO 键值监听
Key Value Observing简称KVO,是一种观察者模式,利用它可以很容易实现视图和数据模型的分离,当数据模型的属性值改变了之后,作为监听器的视图组件就会被激发,激发时就会回调监控器自身。在ObjC中要实现KVO就必须实现NSKeyValueObsServing协议,不过NSObject已经实现了该协议,因此所所有的ObjC对象都可以使用KVO。
ObjC中使用KVO的常用方法名:
1) 注册指定key路径的监听器: addObserver: forKeyPath: options: context:
2)删除指定key路径的监听器: removeObserver: forKeyPath; removeObserver: forKeyPath: context:
3) 回调监听: observerValueForKeyPath: ofObject:
change: context:

使用:使用视图控件注册观察者进行监听,重写监听方法实时改变视图,最后在dealloc中删除监听器。

2 . KVC 键值编码
由于ObjC的语言特点,不必任何操作就可以进行属性的动态读写,这种方式就是Key Value Coding (简称KVC)。
KVC需要遵循NSKeyValueCoding协议,而NSObject就遵循了这个协议,所以所有的对象都支持KVC操作;
常用的操作方法如下:
动态设定:setValue:forKey:(用于简单路径)
setValue:forKeyPath:(用于复合路径,如student.name)
动态读取:valueForKey: 、valueForKeyPath:(用于复合路径)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值