swift-kvo

作者: lotawei | 来源:发表于2016-12-19 11:26 被阅读76次

swift中kvo的使用

  class MyClass: NSObject {
dynamic var date = Date()
  }

 class MyClass1: NSObject {
      var date = Date()
  }

   class MyChildClass: MyClass1 {
      dynamic override var date: Date {
    get { return super.date }
    set { super.date = newValue }
}
   }

  private var myContext = 0

   class Class: NSObject {

var myObject: MyClass!

override init() {
    super.init()
    myObject = MyClass()
    print("初始化 MyClass,当前日期: \(myObject.date)")
    myObject.addObserver(self,
        forKeyPath: "date",
        options: .new,
        context: &myContext)

    delay(3) {
        self.myObject.date = Date()
    }
}

override func observeValue(forKeyPath keyPath: String?,
                        of object: Any?,
                           change: [NSKeyValueChangeKey : Any]?,
                          context: UnsafeMutableRawPointer?)
{
    if let change = change, context == &myContext {
        let newDate = change[.newKey]
        print("日期发生变化 \(newDate)")
    }
    }
  }

  let obj = Class()

相关文章

  • swift-kvo

    swift中kvo的使用

  • RxSwift-KVO

    一、Swift-KVO 步骤一、添加观察 步骤二、观察回调 步骤三、移除观察 注意:监听的属性前 必须 加上 @o...

网友评论

      本文标题:swift-kvo

      本文链接:https://www.haomeiwen.com/subject/ngqtvttx.html