首页 > 其他 > 详细

KVO机制

时间:2017-01-03 18:54:10      阅读:95      评论:0      收藏:0      [点我收藏+]

KVO,全称为Key-Value Observing,是iOS中的一种设计模式,用来监测对象的某些属性的实时变化情况并作出响应

 

首先,假设我们的目标是在一个UITableViewController内对tableview的contentOffset进行实时监测,很容易地使用KVO来实现为。

[_tableView addObserver:self forKeyPath:@"contentOffset" options:NSKeyValueObservingOptionNew context:nil];



在dealloc中移除KVO监听:

[_tableView removeObserver:self forKeyPath:@"contentOffset" context:nil];



//判断改变的属性,监测的属性改变时 触发此方法
 (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object
                        change:(NSDictionary *)change context:(void *)context
{
    if (object == _tableView && [keyPath isEqualToString:@"contentOffset"]) {
[self doSomethingWhenContentOffsetChanges];

} }

 

也可以监测字典类型的key属性。

 


dict=[[NSMutableDictionary alloc]initWithDictionary:@{@"value":@"start"}];
    [self.lb_title setText:[dict objectForKey:@"value"]];
    [dict addObserver:self forKeyPath:@"value" options:NSKeyValueObservingOptionNew|NSKeyValueObservingOptionOld context:nil];

-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
    if ([keyPath isEqualToString:@"value"]) {
        [self.lb_title setText:[change objectForKey:@"new"]];
    }
}

 

KVO机制

原文:http://www.cnblogs.com/niit-soft-518/p/6245531.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!