Свифт наблюдатель свойства в расширении протокола?
Учтите следующее:
protocol ViewControllable: class {
typealias VM: ViewModellable
var vm: VM! { get }
func bind()
}
extension ViewControllable {
var vm: VM! {
didSet {
bind()
}
}
}
Я пытаюсь наблюдатьvm
собственность и вызовbind
всякий раз, когда это вводится. Но это не компилируется с ошибкой, говорящей:
Расширения не могут содержать сохраненные свойства
что имеет смысл, так как протокол не может принудительно заставить свойстваstored
или жеcomputed
.
Возможно ли это сделать без введенияclass inheritance
?
Другими словами,Могу ли я наблюдать за изменением свойства внутри расширения протокола?