发布于 2016-03-29 07:00:05 | 105 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的精品教程,程序狗速度看过来!

KVOController 键值监控技术封装

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


今天,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)

提升

  • NSObject+FBKVOController分类(category)现在被放置在一个独立的文件中(#36 by @ashton-w)

  • 当尝试监控一个已经被监控的对象时不再有多余的警告信息

修复

  • 修复了当尝试从监控执行块(observing block)中移除监控者时可能引发的崩溃行为 (#85 by @siyusong)

  • 修复并且提升了文档的可读性 (#38 by @TongKuo #44 by @jeffreyjackson #49 by @ashton-w #64 by @jcavar #73 by @coeur )

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 .



历史版本 :
KVOController 1.1.0 释出,键值监控技术封装
最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务