我想用NSObject
子类
class Thing: NSObject {
class func defaultText() -> String { ... }
let text: String
init(text: String?) {
self.text = text ?? self.dynamicType.defaultText() // Of course, this line won't compile
super.init()
}
}
这样Thing
子类可以覆盖defaultText()
而不要求它们覆盖初始值设定项。使用可变的存储属性很容易做到这一点,但让它保持不变会很好。有没有办法做到这一点?
这是一个与overriding static vars in subclasses swift 1.2不同的问题。不希望覆盖常量或静态方法。唯一有问题的是,在设置常量的初始值设定项中,有没有办法根据正在初始化的特定类计算值?