Swift 基础

Swift 继承属性观察器

2020-08-12  本文已影响0人  幸运者_Lucky

关于 didSetwillSet 这两个方法, 在继承的时候, 父类的也会执行, 所以尽量不要像下面那样来实现代码, 在不知道父类属性具体的实现的情况下, 很可能造成错误, 如果想覆盖掉父类的实现, 可以自己重新实现 gettersetter

class A {
    var x = 1
    var a = 10 {
        didSet {
            print("AAAA")
            x *= 10
        }
    }
}

class AA: A {
    override var a: Int {
        didSet {
            print("\(a)")
            x *= 100
        }
    }
}

let a = A()
a.a = 20

let aa = AA()
aa.a = 30
print(aa.x)
上一篇 下一篇

猜你喜欢

热点阅读