KVOController 是一个简单安全的 KVO(Key-value Observing,键-值 观察)工具,用于 iOS 和 OS X 应用开发中,开源自 facebook。html
KVO 是一个在 MVC(Model-View-Controller)应用程序开发中,用于不一样模块间交流的一个颇有用的技术。 KVOController 是基于 Cocoa 久经考验的 Key-value Observing 实现(implementation)开发而成的。它提供了一个简单现代的 API,同时也是线程安全的。它有以下优势:git
更多关于 KVO 的信息,可浏览 Apple 的文档:Introduction to Key-Value Observinggithub
项目中有把 KVOController 用于 iOS 和 OS X 的示例程序。这里是一个简单的使用模式:segmentfault
// 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]; }];
尽管上面的例子很简单,但也是一个完整的示范。一个时钟视图建立了一个 KVO 控制器其观察时钟日期的属性。一个代码块回调是用于处理初始化和改变信息推送。在控制器被释放时,KVO 的观察也会无效。安全
KVOController 得益于 Objective-C 技术的发展,包括 ARC 和 weak collections。
它须要:app
使用 CocoaPods,添加下列代码到项目 Podfile 文件:工具
pod 'KVOController'
更多信息可阅读访问项目主页:https://github.com/facebook/KVOController性能
编译:Segmentfault线程