美文网首页
iOS Swift4.0 KVO的官方使用方式

iOS Swift4.0 KVO的官方使用方式

作者: BBH_Life | 来源:发表于2018-05-04 21:18 被阅读130次

    在Swift4.0中,KVO的使用方式相对于3.2有一些变化,为了方便以后查阅,这里将Demo代码记录在这里。
    代码:

    import UIKit
    class MyClass: NSObject {
        @objc dynamic var date = Date()
    }
    
    class AnotherClass: NSObject {
        var myObject: MyClass!
        var observation: NSKeyValueObservation?
        override init() {
            super.init()
            myObject = MyClass()
            print("初始化了,当前日期是:\(myObject.date)")
            
            observation = myObject.observe(\MyClass.date, options: [.new], changeHandler: { (object, change) in
                print("hello")
                if let newDate = change.newValue {
                    print("new date is \(newDate)")
                }
            })
        
            self.myObject.date = Date() // 这里是设置时间(在PlayGround中可以运行)
            /*
            let time = DispatchTime.now() + 2
            DispatchQueue.main.asyncAfter(deadline: time) {
                print("改变") // 在这里延迟改变时间可以更清楚的看出
                self.myObject.date = Date()
            }
             */
        }
    }
    
    let a = AnotherClass() // 初始化这个对象来运行代码
    

    相关文章

      网友评论

          本文标题:iOS Swift4.0 KVO的官方使用方式

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