Estoy tratando de crear un contenedor de propiedades personalizado compatible con SwiftUI, lo que significa que los cambios en los valores de propiedades correspondientes causarían una actualización de la vista SwiftUI. Aquí hay una versión simplificada de lo que tengo:
@propertyWrapper
public struct Foo: DynamicProperty {
@ObservedObject var observed: SomeObservedObject
public var wrappedValue: [SomeValue] {
return observed.value
}
}
Veo que incluso si mi ObservedObject
está contenido dentro de mi contenedor de propiedades personalizadas, SwiftUI aún captura los cambios SomeObservedObject
siempre que:
- Mi contenedor de propiedades es una estructura
- Mi envoltorio de propiedad se ajusta a
DynamicProperty
Desafortunadamente, los documentos son escasos y me cuesta mucho saber si esto solo funciona por suerte con la implementación actual de SwiftUI.
Los documentos de DynamicProperty
(dentro de Xcode, no en línea) parecen indicar que dicha propiedad es una propiedad que se cambia desde el exterior, lo que hace que la vista se vuelva a dibujar, pero no hay garantía sobre lo que sucede cuando se ajustan sus propios tipos a este protocolo.
¿Puedo esperar que esto continúe funcionando en futuros lanzamientos de SwiftUI?