У меня есть протокол (X) и класс (A), который реализует протокол X:
protocol X, NSObjectProtocol {
var toBeObserved: MyCustomClass? { get}
}
class A: NSObject, X {
var toBeObserved: MyCustomClass?
...
}
в другом классе. Я хочу наблюдать переменную toBeObserved
:
class B {
...
var instanceConformingToX: X <-note: not A but simply the protocol X
...
func someFunc() {
self.observation = self.observe(\.instanceConformingToX.toBeObserved) { (observed, change) in
...
}
}
}
}
Все, что здесь есть в уравнении, соответствует или соответствует NSObject, поэтому я ожидаю, что смогу выполнить КВО toBeObserved
, но вместо этого получаю аварийное завершение:
Fatal error: Could not extract a String from KeyPath Swift.KeyPath<MyAppName.B, MyFramework.A>
Спасибо.