我有一个超类,它有一个布尔变量,我想在子类之间共享它(通过引用传递)
Class parentClass: UIViewController {
var sharedVariable: Bool = false
}
Class firstChild: parentClass {
@IBAction func myButtonTouched(_ sender: Any) {
sharedVariable = true
}
}
Class secondChild: parentClass {
print(sharedVariable)
}
但是当我在firstClass中更改sharedVariable时,它不会为secondClass更改它。
我将不胜感激任何帮助
答案 0 :(得分:4)
您可以使用静态变量,就像这样(我稍微纠正了代码和代码样式):
class ParentClass: UIViewController {
static var sharedVariable: Bool = false
}
class FirstChild: ParentClass {
@IBAction func myButtonTouched(_ sender: Any) {
ParentClass.sharedVariable = true
}
}
class SecondChild: ParentClass {
func test() {
print(ParentClass.sharedVariable)
}
}
然后,为了测试,你可以这样做:
let secondChild = SecondChild()
secondChild.test() // prints false
let firstChild = FirstChild()
firstChild.myButtonTouched(firstChild)
secondChild.test() //prints true