我需要子类中的扩展属性,但此代码不能编译。
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上实现这个?
答案 0 :(得分:0)
你不能在swift中覆盖或更改属性类型,但是施放可能对你有所帮助。例如,检查此代码中的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
}