Свифт наблюдатель свойства в расширении протокола?

Учтите следующее:

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?

Другими словами,Могу ли я наблюдать за изменением свойства внутри расширения протокола?

Ответы на вопрос(1)

Ваш ответ на вопрос