您的位置:首页 > 其它

KVO的简单使用

2015-09-12 14:34 246 查看
一、KVO:(Key-Value-Observer)键值观察者,是观察者设计模式的⼀种具体实现。

触发机制:⼀个对象(观察者),监测另⼀对象(被观察者)的某属性是否发⽣变 化,若被监测的属性发⽣的更改,会触发观察者的⼀个⽅法(⽅法名固定,类似代理⽅法)

使⽤步骤: 1、注册观察者(为被观察者指定观察者以及被观察属性) 2、实现回调⽅法 3、触发回调⽅法(被观察属性发⽣更改) 4、移除观察者

二、使用细解

拿自建的一个Person类来说

Person *person = [[Person alloc] init];

[person addObserver:self forKeyPath:@"person.name" options:( NSKeyValueObservingOptionOld | NSKeyValueObservingOptionNew) context:nil];

四个参数:

observer :观察者

keyPath :观察哪个属性

options :观察属性的状态,新旧值还是初始值

context :上下文,用来传值的,如果不需要传值,可置为nil

下面的方法是添加了观察者,属性发生变化时自己调用的方法,不能手动调用。

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

NSLog(@"%@ %@ %@ %@", keyPath, object, change, context);

// 移除观察者

[object removeObserver:self forKeyPath:keyPath context:context];

}

参数含义:

keyPath 所观察的属性

object 别观察者

change 一个字典,内部包含了属性不同状态下的值

context 上下文,从外界传数据过来
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: