在Swift中,didSet从init()调用时不会触发,

在Swift中,didSet从init()调用时不会触发,,第1张

概述我有一辆车和司机。它们相互引用。在汽车的init()中,我创建一个驱动程序并将其分配给驱动程序成员。驱动程序成员具有doSet方法,该方法应该设置驾驶员的车,从而将它们彼此相互连接起来。 class GmDriver { var car: GmCar! = nil}class GmCar { var driver: GmDriver { didSet { 我有一辆车和司机。它们相互引用。在汽车的init()中,我创建一个驱动程序并将其分配给驱动程序成员。驱动程序成员具有doSet方法,该方法应该设置驾驶员的车,从而将它们彼此相互连接起来。
class GmDriver {    var car: GmCar! = nil}class GmCar {    var driver: GmDriver {        dIDSet {            driver.car = self        }    }    init() {        driver = GmDriver()    }}let myCar = GmCar()println(myCar.driver.car) // nil

但是,dIDSet从不触发。为什么?

Apple Documentation:

The willSet and dIDSet observers of superclass propertIEs are called when a property is set in a subclass initializer,after the superclass initializer has been called. They are not called while a class is setting its own propertIEs,before the superclass initializer has been called.

总结

以上是内存溢出为你收集整理的在Swift中,didSet从init()调用时不会触发,全部内容,希望文章能够帮你解决在Swift中,didSet从init()调用时不会触发,所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1052570.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存