如下代码:
class Father {
static var someProperty = 2
class var secondProperty: Int {
return 3
}
}
class Son : Father {
override static var someProperty: Int { // error
set {
_ = newValue + 2
}
get {
return super.someProperty
}
}
override class var secondProperty: Int { // error
willSet {
// code...
}
didSet {
// code...
}
}
}
上述代码有误,不过官方文档中注明了以下内容:
“You can override an inherited instance or type property to provide your own custom getter and setter for that property, or to add property observers to enable the overriding property to observe when the underlying property value changes.”
摘录来自: Apple Inc. “The Swift Programming Language (Swift 3)”。 iBooks.
比如想要给父类的某个类型属性添加属性观察器,监听值的变化,该如何实现?或者说,如何操作才能在子类中重写父类的类型属性以及给类型属性添加属性观察器?
親クラス属性にオブザーバーを追加するのは非常に簡単です。監視する必要がある親クラス属性を
override
し、その後にwillSet
またはdidSet
を追加するだけです。しかし、親クラスのクラス属性をオーバーライドすることはできないようです。後でもう一度試して追加します。