KVO实现

观察对象添加观察者( observer ):

// 添加键值观察
/*
1 观察者,负责处理监听事件的对象
2 观察的属性
3 观察的选项
4 上下文
*/
[self.person addObserver:self forKeyPath:@"name" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:@"Person Name"];

observer中需要实现一下方法:

// 所有的 kvo 监听到事件,都会调用此方法
/*
 1. 观察的属性
 2. 观察的对象
 3. change 属性变化字典(新/旧)
 4. 上下文,与监听的时候传递的一致
 */
- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context;
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 如果说书籍是人类进步的阶梯,那么优秀的开源代码就是程序员提升的桥梁。研读源码可以学习其中的框架和模式, 代码技巧,...
    金小俊阅读 3,678评论 9 48
  • 博客链接KVO实现原理 在iOS开发中,我们可以通过KVO机制来监听某个对象的某个属性的变化。 KVO实现步骤 K...
    NeroXie阅读 492评论 0 5
  • 文章结构 前言 在 iOS 开发中,常常需要在不同的对象、不同的视图(View)或不同的视图控制器(ViewCon...
    Linsw阅读 4,380评论 0 6
  • 版本记录 前言 KVO具有更强大的功能,是苹果给我们的一个回调机制,在某个对象注册监听者后,在被监听的对象发生改变...
    刀客传奇阅读 618评论 0 1
  • 如果说书籍是人类进步的阶梯,那么优秀的开源代码就是程序员提升的桥梁。研读源码可以学习其中的框架和模式, 代码技巧,...
    6ffd6634d577阅读 308评论 0 0