我有一个超类A和子类B.两个都是ViewControllers。代码如下:
class A {
var a : Bool = false
}
class B : A {
var b : Int = 10
func changeB() {
b = 20
}
}
因此,在A类中有一个变量a。每当它改变时,它应该改变B类的变量b,即它应该调用一个方法changeB()来更新b。
实现此目的的一种方法是使用事件调用方法 changeB(),这将更新 b 。
还有其他方法可以达到同样的目的吗?
这只是其他人理解的模板。实际问题是 - A类由地图视图和列表视图组成,它处理2个视图之间的切换。 B类继承A并且在视图顶部有一个按钮,该按钮只应显示在列表视图中,而不能显示在地图视图中。
所以,当视图在列表视图和地图视图之间切换时,我希望更改类B 中的 button.isVisible 属性> A级。
答案 0 :(得分:1)
您需要覆盖子类中的a
,以便可以从其setter中调用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
}
}