支持Swift 3.0
您是否想过在Swift中实现通用的键值观察(KVO)?这可以让您的生活更轻松,并节省很多类型转换。本项目受到了facebook/KVOController的启发。因此,它不仅提供了一个干净的KVO API,而且利用了Swift的泛型功能。
简单用法
observe(retainedObservable: clock, keyPath: "date", options: .New | .Initial)
{ [weak self] (observable: Clock, change: ChangeData<NSDate>) -> () in
if let date = change.newValue {
self?.timeLabel.text = formatter.stringFromDate(date)
}
}
注意,您必须给出改变属性的通配符类型。在我们的例子中,属性是NSDate
,因此改变是类型ChangeData
您可以使用自动取消观察的行为,或者如果您确实想取消观察,只需调用
unobserve(clock, keyPath: "date")
KVOController-Swift可以通过CocoaPods获得。要安装它,请将以下行添加到您的Podfile中:
pod "KVOController-Swift"
对于iOS 7.x
内置框架需要iOS 8或更高版本的最低部署目标。
如果您正在使用针对iOS 7的项目使用KVOController-Swift,您必须直接将KVOController.swift包含到您的项目中。
Mohamed Afifi,[email protected]
KVOController-Swift在MIT许可下提供。有关更多信息,请参阅LICENSE文件。