我需要子类中的扩展属性,但是此代码无法编译。
protocol A {
}
protocol B: A {
}
protocol C: A {
}
class Base {
var presenter: A?
}
class Left: Base {
override var presenter: B?
}
class Right: Base {
override var presenter: C?
}
如何在Swift 2上实现呢?
最佳答案
您不能快速覆盖或更改属性类型,但是强制转换可能会有所帮助。例如,在此代码中检查Left类:
protocol A {
}
protocol B: A {
}
protocol C: A {
}
class Base {
var presenter: A?
}
class Left: Base {
init(persenter : B?) {
self.presenter = presenter
}
func test() {
print(presenter as! B)
}
}
class Right: Base {
var presenter: C? //WON'T COMPILE
}
关于swift - swift 。在子类中使用扩展属性类型,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39369971/