Estou tentando criar um wrapper de propriedade personalizado suportado pelo SwiftUI, o que significa que alterações nos valores das propriedades correspondentes causariam uma atualização na exibição do SwiftUI. Aqui está uma versão simplificada do que eu tenho:
@propertyWrapper
public struct Foo: DynamicProperty {
@ObservedObject var observed: SomeObservedObject
public var wrappedValue: [SomeValue] {
return observed.value
}
}
Vejo que, mesmo que meu ObservedObject
esteja contido dentro do meu wrapper de propriedade personalizado, o SwiftUI ainda captura as alterações SomeObservedObject
desde que:
- Meu invólucro de propriedade é uma estrutura
- Meu invólucro de propriedade está em conformidade com
DynamicProperty
Infelizmente, os documentos são escassos e tenho dificuldade em dizer se isso só funciona com a implementação atual do SwiftUI.
Os documentos de DynamicProperty
(no Xcode, não on-line) parecem indicar que essa propriedade é alterada externamente, fazendo com que a exibição seja redesenhada, mas não há garantia sobre o que acontece quando você conforma seus próprios tipos a este protocolo.
Posso esperar que isso continue funcionando em versões futuras do SwiftUI?