考虑以下几点:
protocol ViewControllable: class { typealias VM: viewmodellable var vm: VM! { get } func bind() } extension ViewControllable { var vm: VM! { didSet { bind() } } }
我试图观察vm属性,并在注入时调用bind.但是这不编译错误说:
Extensions may not contain stored properties
这是有道理的,因为协议不能强制要存储或计算的属性.
这是否可以在不引入类继承的情况下完成?
换句话说,我可以观察协议扩展中的属性的更改吗?