码迷,mamicode.com
首页 > 其他好文 > 详细

KVO的简单使用

时间:2015-09-12 14:50:38      阅读:213      评论:0      收藏:0      [点我收藏+]

标签:

一、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 上下文,从外界传数据过来

 

     

 

KVO的简单使用

标签:

原文地址:http://www.cnblogs.com/qiushifalife/p/4802981.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!