我一直在修改这个,我想知道是否有任何关于这个主题的文献,或者任何知道预期行为的方式。这是一个例子:
class A {
var paused:Bool = false {
willSet { print("Class A willSet on paused called") }
didSet { print("Class A didSet on paused called") }
}
}
class B : A {
override var paused:Bool {
willSet { print("Class B willSet on paused called") }
didSet { print("Class B didSet on paused called") }
}
}
class C : B {
override var paused:Bool {
willSet { print("Class C willSet on paused called") }
didSet { print("Class C didSet on paused called") }
}
}
let testC = C()
testC.paused = true
当它运行时,我得到这个输出:
Class C willSet on paused called
Class B willSet on paused called
Class A willSet on paused called
Class A didSet on paused called
Class B didSet on paused called
Class C didSet on paused called
似乎willSet
以通常的多态方式调用了,但是didSet
反向调用了。这有点酷,但是这种行为记录在哪里?像这样的测试是学习它的唯一方法吗?