在swift中覆盖get-only属性

时间:2015-08-13 19:53:48

标签: swift

我在父类中声明了属性

var textLabel: UILabel! { get }

是否可以在子类中使其可写?

1 个答案:

答案 0 :(得分:11)

是的,可以在子类中使其可写。但是,由于它是计算属性,因此您很可能必须添加另一个存储的属性来保存您要分配的新值。我用下面的字符串来说明:

class Parent {
    var text: String {
        get {
            return "Parent"
        }
    }
}

class Child: Parent {
    var _text: String = "Child"
    override var text: String {
        get {
            return _text
        }
        set {
            self._text = newValue
        }
    }
}

let child = Child()
child.text = "New String"