Avatar
omochimetaru 6/14/2020 3:57 AM
もしCounterが class Counter: ObservedObject { @Published var count: Int @Published var foo: Foo } のようにfooも持っていてもこれはclassだから分離されているから良いけど・・・ (edited)
3:59 AM
class Counter: ObservedObject { @Published var count: Count } struct Count { var value: Int var foo: Foo } (edited)
4:00 AM
のような場合にcount.valueが変わると、これはcount自体の変更になって、 count.fooの更新通知も発生してしまうのが嫌だよねという話かと思ってたけど
4:01 AM
これはもうstructの部分更新が全体更新と同一視されるのは基本的な事だからそれでいいのかな。
4:01 AM
この状況において $counter.count.value でバインディングしたときに、$counter.count.foo でバインディングしている側には影響が無いようなシステムを期待しているイメージだった。
4:02 AM
SwiftUIの場合は実装的には、$counter.count.foo をバインドしてるView Tree側で、勝手に変更チェックをしてfooが変化していなければ実View(FooView)の更新はしないという事をやるのだと思うけど。 (edited)