考虑以下:
protocol ViewControllable: class {
typealias VM: ViewModellable
var vm: VM! { get }
func bind()
}
extension ViewControllable {
var vm: VM! {
didSet {
bind()
}
}
}
我正在尝试观察vm属性并bind在注入时调用。但这不会编译错误说:
扩展可能不包含存储的属性
这是有道理的,因为协议不能强制属性为storedor computed。
这可以在不引入的情况下完成class inheritance吗?
换句话说,我可以观察协议扩展内的属性变化吗?