J'essaie de créer un wrapper de propriété personnalisé pris en charge par SwiftUI, ce qui signifie que les modifications apportées aux valeurs de propriétés correspondantes entraîneraient une mise à jour de la vue SwiftUI. Voici une version simplifiée de ce que j'ai:
@propertyWrapper
public struct Foo: DynamicProperty {
@ObservedObject var observed: SomeObservedObject
public var wrappedValue: [SomeValue] {
return observed.value
}
}
Je vois que même si mon ObservedObject
est contenu à l'intérieur de mon wrapper de propriété personnalisée, SwiftUI intercepte toujours les modifications SomeObservedObject
tant que:
- Mon wrapper de propriété est une structure
- Mon wrapper de propriété est conforme à
DynamicProperty
Malheureusement, les documents sont rares et j'ai du mal à dire si cela ne fonctionne que par chance avec la mise en œuvre actuelle de SwiftUI.
Les documents de DynamicProperty
(dans Xcode, pas en ligne) semblent indiquer qu'une telle propriété est une propriété qui est modifiée de l'extérieur, ce qui entraîne la redessine de la vue, mais il n'y a aucune garantie de ce qui se passe lorsque vous conformez vos propres types à ce protocole.
Puis-je m'attendre à ce que cela continue de fonctionner dans les futures versions de SwiftUI?