美文网首页
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的官方使用方式

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

  • [Swift]Swift4.0的KVO

    KVO原理及Objc的实现不再赘述简单说一下Swift4.0以后更为科学的KVO:官方文档: func obser...

  • KVO

    iOS用什么方式实现对一个对象的KVO?(KVO的本质) 1 未使用KVO监听的对象 MJPerson insta...

  • iOS底层原理总结 - 探寻KVO本质

    问题iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)如何手动触发KVO 首先需要了解KVO基本使用...

  • iOS-KVO(二) 使用注意点

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • iOS-KVO(三) 窥探底层实现

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • iOS-KVO(四) 自定义KVO+Block

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • iOS-KVO(一) 基本操作

    iOS-KVO(一) 基本操作iOS-KVO(二) 使用注意点iOS-KVO(三) 窥探底层实现iOS-KVO(四...

  • 通过面试题来剖析KVO以及KVC

    iOS用什么方式实现对一个对象的KVO?(KVO的本质?) NSKVONotifying_MJPerson是使用R...

  • KVO

    基本使用 iOS用什么方式实现对一个对象的KVO?(KVO的本质是什么?)KVO的全称是Key-Value Obs...

网友评论

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

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