Обертки свойств на самом деле являются просто классами / структурами. На самом деле они не являются собственностью. Они оборачивают свойство с именем wrappedValue
. Итак, чтобы «наблюдать» за оболочкой свойств, вы должны наблюдать, что wrappedValue
.
wrappedValue
в вашем коде является вычисляемым свойством. Вычисляемые свойства не нуждаются в наблюдателях свойств. См. этот мой ответ , почему. Если вы хотите «наблюдать» wrappedValue
, просто напишите нужный код в set
:
var wrappedValue: Int {
get { return number }
set {
// write willSet here...
number = min(newValue, maximum)
// write didSet here...
}
}
Вы можете наблюдать за ним, если wrappedValue
было сохраненным свойством:
@propertyWrapper
struct Property {
...
var wrappedValue: Int {
didSet { ... }
willSet { ... }
}
}