Sto tentando di creare un wrapper di proprietà personalizzato supportato da SwiftUI, il che significa che le modifiche ai valori delle proprietà corrispondenti causerebbero un aggiornamento della vista SwiftUI. Ecco una versione semplificata di ciò che ho:
@propertyWrapper
public struct Foo: DynamicProperty {
@ObservedObject var observed: SomeObservedObject
public var wrappedValue: [SomeValue] {
return observed.value
}
}
Vedo che anche se my ObservedObject
è contenuto all'interno del mio wrapper di proprietà personalizzato, SwiftUI continua a rilevare le modifiche fino SomeObservedObject
a quando:
- Il mio wrapper di proprietà è una struttura
- Il mio wrapper di proprietà è conforme a
DynamicProperty
Sfortunatamente i documenti sono scarsi e ho difficoltà a dire se questo funziona solo sfortunatamente con l'attuale implementazione di SwiftUI.
I documenti di DynamicProperty
(all'interno di Xcode, non online) sembrano indicare che tale proprietà è una proprietà che viene modificata dall'esterno causando il ridisegno della vista, ma non vi è alcuna garanzia su ciò che accade quando si conformano i propri tipi a questo protocollo.
Posso aspettarmi che questo continui a funzionare nelle versioni future di SwiftUI?