kvo

KVO

这种机制允许当一个对象的某种属性的值被修改后会通知另外观察改变化的对象。常用于MVC中Model与Controller之间的通信。
KVO是基于KVC这种模式来实现的

如何使用KVO

  • 注册,指定被观察者的属性
  • 实现回调方法 (对属性监听)(KVC对方法监听)
  • 移除观察

常用方法及数据类型说明


// 添加监听对象,并指指定监听的keyPath,以及监听哪些值的变化

-(void)addObserver:(NSObject )anObserver forKeyPath:(NSString )keyPath
options:(NSKeyValueObservingOptions)options context:(void *)context
options参数:

NSKeyValueObservingOptions 说明你要监听什么样的变化:

NSKeyValueObservingOptionNew 属性变化的时候, 只会通知新的值

NSKeyValueObservingOptionOld 属性变化的时候,只会通知旧的数据值

NSKeyValueObservingOptionInitial 当调⽤用添加监听的⽅方法时候,回调⽅方法⽴立即调⽤用,
通知初始值

NSKeyValueObservingOptionPrior 取代单次通知,在值变化前和变化后都会调⽤用,⽐比如
设置old后,不单单只通知⼀一次, 变化前后会通知两次。

// 移除指定键路径的观察者对象

- (void)removeObserver:(NSObject )anObserver forKeyPath:(NSString )keyP
ath

// 当监听的属性发⽣生变化后会调⽤用此⽅方法,根据监听option的设置,change的值会存储对应的值

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object ch
ange:(NSDictionary )change context:(void )context


注意:必须⽤用set⽅方法, 或者KVC的⽅方法修改属性的值,才会引起KVO通知


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值