찾다

 >  Q&A  >  본문

ios - Swift 3.0 中能重写继承于父类的值类型类型属性吗?能添加属性观察器吗?

如下代码:

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.

比如想要给父类的某个类型属性添加属性观察器,监听值的变化,该如何实现?或者说,如何操作才能在子类中重写父类的类型属性以及给类型属性添加属性观察器?

迷茫迷茫2771일 전406

모든 응답(1)나는 대답할 것이다

  • 大家讲道理

    大家讲道理2017-04-18 09:54:18

    부모 클래스 속성에 관찰자를 추가하는 방법은 매우 간단합니다. 관찰해야 할 부모 클래스 속성을 override한 다음 willSet 또는 didSet을 추가하면 됩니다.
    하지만 상위 클래스의 클래스 속성을 재정의하는 것은 불가능한 것 같습니다. 나중에 다시 시도해보고 추가하겠습니다.

    회신하다
    0
  • 취소회신하다