Key-value 的监控是一个 MVC 应用中非常有用的技术。KVOController (来自 Facebook)构建了一个基于 Cocoa 的 time-tested key-value 监控实现,提供简单方便、线程安全的 API。好处包括:
使用 Blocks、自定义 Actions 或者 NSKeyValueObserving 回调进行通知.
观测者移除时无异常
控制器 dealloc 时隐式的观测者移除
提升使用 NSKeyValueObservingINitial 的性能
线程安全并提供在观测者恢复时额外的保护Thread-safety with SPEcial guards against observer resurrection &nDash; 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]; }];
要求:
发布于 2016-03-29 07:00:05 | 105 次阅读