OC 中 KVO 的原理总结

本文总结了Objective-C中的Key Value Observing(KVO)原理,解释了KVO是如何实现对象属性监听的。当属性变化时,KVO会触发回调。通过实例分析,详细介绍了KVO在底层创建新类并重写属性方法以实现监听功能的过程,以及手动触发KVO的技巧。

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

OC 中 KVO 的原理总结

KVO(Key Value Observing),可以用来监听一个对象键值的变化,当键值变化时,触发回调函数,做相应的操作,主要用法总结如下:

// 注册Observer: observer:观察者, keyPath:要观察的属性名称, options:对KVO机制进行配置, context: 传入任意类型的对象
addObserver:forKeyPath:options:context:

// 接收通知: keyPath:被监听的对象的属性,object:被监听的对象,change:被监听的对象的属性值的变化,是一个字典,
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
  
// 移除观察者
-removeObserver:forKeyPath:

举个例子:

@interface Person : NSObject
@property (copy) NSString *gender;
@property (assign) int age;
@end
  
@implementation Person
@end
  
- (void)viewDidLoad {
    [super viewDidLoad];

    // Do any additional setup after loading the view.

    P
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值