KVOControllerkey-value 监控实现

联合创作 · 2023-09-27 19:13


温馨提示:该项目除了使用 BSD 协议授权外,还需遵守附加的专利授权

Key-value 的监控是一个 MVC 应用中非常有用的技术。KVOController (来自 facebook)构建了一个基于 Cocoa 的 time-tested key-value 监控实现,提供简单方便、线程安全的 API。好处包括:



  • 使用 Blocks、自定义 Actions 或者 NSKeyValueObserving 回调进行通知.


  • 观测者移除时无异常


  • 控制器 dealloc 时隐式的观测者移除


  • 提升使用 NSKeyValueObservingInitial 的性能


  • 线程安全并提供在观测者恢复时额外的保护Thread-safety with special guards against observer resurrection – rdar://15985376.



使用方法:


// create KVO controller with observer
FBKVOController *KVOController = [FBKVOController controllerWithObserver:self];

// observe clock date property 
[KVOController observe:clock keyPath:@"date" options:NSKeyValueObservingOptionInitial|NSKeyValueObservingOptionNew block:^(ClockView *clockView, Clock *clock, NSDictionary *change) {

  // update clock view with new value
  clockView.date = change[NSKeyValueChangeNewKey];
}];

要求:



  • iOS 6 or later.


  • OS X 10.7 or later.


浏览 31
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

编辑 分享
举报