更改子类SWIFT内的超类中声明的readonly变量

时间:2015-01-25 16:40:20

标签: swift

我是一个老客观的开发人员试图让我的脚在Swift中弄脏,但我遇到了以下问题:

我们有一个超类

class MySuper  {
     private(set) var myReadOnlyVar = true
}

然后我有MySuper的子类

class Subclass: MySuper {
     func myFunc() {
         super.myReadOnlyVar = false        // error
     }
}

我可以在这做任何解决方法吗?我知道swift没有受保护的访问权限,但它应该有类似的东西。

1 个答案:

答案 0 :(得分:1)

您需要将Subclass实施更改为此

class SubClass: MySuper {
    func myFunc() {
        super.setValue(false, forKey: "myReadOnlyVar")
    }
}