模式 - KVO

这里写图片描述

  • KVO: Key Value Observing
  • 常用作用:监听模型属性值的改变
- (void)viewDidLoad{
    self.p1 = [[WQPerson alloc] init];
    self.p1.name = @"oldName";
    // 利用KVO时刻监听mainV的frame属性
    // Observer:观察者 谁想监听
    // KeyPath:监听对象调用者的属性
    // options:监听新值的改变
    [self.p1 addObserver:self forKeyPath:@"name" options: NSKeyValueObservingOptionOld context:nil];
    // setter方法修改属性的值
    self.p1.name = @"newName";
}

#pragma mark - KVO监听方法
/**
 * 只要监听的属性一改变,就会调用观察者的这个方法,通知你有新值
 */
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context
{
    NSLog(@"监听到%@对象的%@属性发生了改变, %@", object, keyPath, change);
}

- (void)dealloc
{
    [self.p1 removeObserver:self forKeyPath:@"name"];
}
  • 有时监听不到,原因必须是通过setter或getter方法改变属性的值,系统改变属性值不会监听到
阅读更多
个人分类: IOS
上一篇模式 - 单例(定义为宏)
下一篇模式 - KVC
想对作者说点什么? 我来说一句

IOS 委托模式KVO实例Demp

2014年02月26日 74KB 下载

没有更多推荐了,返回首页

关闭
关闭