SwiftUIでサポートされているカスタムプロパティラッパーを作成しようとしています。つまり、対応するプロパティ値を変更すると、SwiftUIビューが更新されます。ここに私が持っているものの簡単なバージョンがあります:
@propertyWrapper
public struct Foo: DynamicProperty {
@ObservedObject var observed: SomeObservedObject
public var wrappedValue: [SomeValue] {
return observed.value
}
}
ObservedObject
カスタムプロパティラッパー内に含まれている場合でも、SwiftUI SomeObservedObject
は次の限り変更をキャッチします。
- 私のプロパティラッパーは構造体です
- 私のプロパティラッパーは準拠しています
DynamicProperty
残念ながらドキュメントはまばらで、これが現在のSwiftUI実装でうまくいかなかった場合にうまく機能しないかどうかを判断するのに苦労しています。
DynamicProperty
(オンラインではなくXcode内の)のドキュメントは、そのようなプロパティが外部から変更されてビューを再描画するプロパティであることを示しているようですが、独自のタイプをこのプロトコルに準拠させたときに何が起こるかについては保証されません。
これが今後のSwiftUIリリースで引き続き機能することを期待できますか?
4
このトピックに何が期待されているかは明らかではありません...最後の質問に答えてください。誰かが「はい、確かに、あなたは期待できる」と答えたら本当に信じますか?))
—
Asperi