StateObject
の init(wrappedValue:)
がクロージャを受け取るのに対して State
の init(wrappedValue:)
は値を受け取るから,2 回目以降の (画面が開かれているうちは最初のだけがずっと使いまわされるので) 捨てられる運命にある ChildViewModel
の init()
と deinit
が無駄に発火してしまっているところです.クロージャだとまだ init
が実行されていないのでStateObject
でも捨てられるのは一緒なんですがより遅延評価的な感じになっているという感じですね.