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