无法更改超类变量“description”

时间:2016-03-15 02:42:46

标签: ios swift inheritance subclass superclass

我正在尝试学习Swift中的继承概念,并提出了以下代码。我在子类中修改变量“numberOfWheels”没有问题,但是当我尝试在子类中修改变量“description”时,Xcode显示错误:

cannot assign to property "description" is a get only property

因为我对Swift比较新,所以我无法解决这个问题?有人可以请我提供一个如何解决这个问题的代码示例吗?非常感谢您的帮助!

class Vehicle{
    var numberOfWheels = 0
    var description: String{
        return "\(numberOfWheels) wheels"
    }
}

class Bicycle: Vehicle {
    override init(){
        super.init()
        numberOfWheels = 2
        description = "\(numberOfWheels) wheels, more is good"
    }
}

enter image description here

1 个答案:

答案 0 :(得分:1)

description是只读计算属性,因此无法直接分配给。它通常用于为实现CustomStringConveritble的类提供字符串转换以进行打印。如果您真的想要覆盖子类中的description,则应按如下方式执行:

override var decsription: String {
    return "\(numberOfWheels) wheels, more is good"
}