在init方法中更改属性不会调用属性的didSet。为什么?

时间:2017-06-04 14:40:39

标签: swift

class Person {
    var name: String
    init(name: String) {
        self.name = name
    }
}

class Boy: Person {
    var gf: String! {
        didSet {
            print("have a girlfriend: \(gf)")
        }
    }
    override init(name: String) {
        super.init(name: name)
        gf = "Lilian"
    }
}

我认为属性“gf”在调用“super.init”之前已经初始化,值为nil。所以在“super.init”下面,重置“gf”应该调用它的“didSet”。但事实并非如此。我想知道原因。

0 个答案:

没有答案