覆盖 – 覆盖实例var的默认值

给定类Obj,

class Obj: NSObject {
    var x = "x"
}

和它的子类Obj1,你如何更改var x的默认值?

简单地设置一个新的值将是最有意义的,但似乎错误出来…

class Obj1: Obj {
    var x = "y"
}

❗️ Cannot override with a stored property ‘x’

最佳答案
将init()方法定义为:

init () {
  super.init()
  x = "y"
}

您将需要Obj1中的任何其他初始化函数作为self.init()调用.苹果文档对于初始化程序和指定的初始化程序进行了长时间的讨论.

转载注明原文:覆盖 – 覆盖实例var的默认值 - 代码日志