Observative 0.0.7

Observative 0.0.7

测试已测试
语言语言 SwiftSwift
许可 MIT
发布上次发布2016年12月
SwiftSwift 版本3.0
SPM支持 SPM

Peter DeWeese 维护。



  • Peter DeWeese

Observative

Swift 库,用于简化键值观察。KVO 只适用于 NSObjects,因此 Observative 只能观察 NSObject 的祖先。

  • 只观察 NSObjects 的属性
  • 声明需要观察的属性为动态的,dynamic var myVar

方法

  • observe(_ object:NSObject, keyPath:String, onChange:见下文)
    • (_ oldValue:Any?, _ newValue:Any?) -> Void
    • (_ newValue:Any?) -> Void
    • () -> Void

  • stopObserving(_ object:NSObject)
  • stopObserving()

Playground 示例

var updateCalled = false
let objectToWatch = NSMutableDictionary(dictionary:["key1":"value1"])

let observative = Observative()
observative.observe(objectToWatch, keyPath:"key1")
{
    updateCalled = true
}

objectToWatch["key1"] = "updatedValue1"
if updateCalled{ print("it worked!") }

类示例

class MyController, Observes
{
    var objectToWatch:CustomObject {
        didSet {
            if oldValue != nil
            {
                stopObserving(oldValue)
            }
            observe(objectToWatch, keyPath:"myProperty")
            {
                self.doOnChange()
            }
        }
    }

    func doOnChange()
    {
        print("myProperty changed!")
        // object changed
    }
}