今天,Facebook 的员工在 GitHub 上发布了 KVOController v1.1.0 版本。 这次更新主要包含了以下改进: 新的特性: 针对 iOS/OS X/tvOS/watchOS 的 Carthage 支持 (#71 by @lexrus #99, #101, #102 by @nlutsenko) 提供了对 tvOS/watchOS 官方的 CocoaPods 支持 (#79 by @acerbetti, #98 by @nlutsenko) 所有的 API 都具有了 nullability annotations (#88 by @nlutsenko) 所有的对象集合(object collections)现在都具有泛型 (#91 by @nlutsenko) 新的工具宏(macros)以提供对键直观查路径(Key-Value Observing Paths)有效性的编译时检查 (#95, #97 by @nlutsenko) 支持 Xcode 7.3 和 Apple 开发最新的工具链 (#86, #90 by @nlutsenko)
提升: 修复: 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.
使用方法: 1 2 3 4 5 6 7 8 9 | FBKVOController *KVOController = [FBKVOController controllerWithObserver:self];
[KVOController observe: clock keyPath:@ "date" options:NSKeyValueObservingOptionInitial|NSKeyValueObservingOptionNew block:^(ClockView *clockView, Clock * clock , NSDictionary *change) {
clockView.date = change[NSKeyValueChangeNewKey];
}];
|
要求: iOS 6 or later. OS X 10.7 or later . |