您的位置:首页 > 其它

kvo

2015-11-13 10:02 246 查看

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通知
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: