代码之家  ›  专栏  ›  技术社区  ›  Deepak Terse

超类变量变化的swift-call子类方法

  •  -1
  • Deepak Terse  · 技术社区  · 7 年前

    我有一个超类A和子类B。都是视图控制器。代码如下:

    class A {
        var a : Bool = false
    }
    
    class B : A {
        var b : Int = 10
        func changeB() {
            b = 20
        }
    }
    

    因此,在类A中有一个变量A。每当它改变时,它应该改变类B的变量B,即它应该调用一个方法change b(),该方法将更新B。

    实现这一点的一种方法是使用事件调用方法 Cube() 它将更新

    有没有其他方法可以达到同样的目的?

    这只是一个供其他人理解的模板。实际的问题是-A级由地图视图和列表视图组成,它处理两个视图之间的切换。B类继承了A,并且在视图的顶部有一个按钮,该按钮只应在列表视图中显示,而不应在映射视图中显示。

    所以,我想改变我的 按钮可见 属于 乙类 ,当视图在列表视图和映射视图之间切换时 甲类 .

    1 回复  |  直到 7 年前
        1
  •  1
  •   Paulw11    7 年前

    你需要超越 a 在你的子类中以便你可以调用 changeB 从它的设置者。

    class B : A {
        var b : Int = 10
        override var a: Bool {
            set {
                super.a = newValue
                self.changeB()
            }
            get {
                return super.a
            }
        }
    
        func changeB() {
            b = 20
        }
    }