【Swift】Apple 公式サンプル にみる @ModelActor を singleton にして ViewModifier にすると便利

 

🤔 @ModelActor の使い方

👉 【SwiftUI】SwiftData でスレッドセーフにバックグラウンドでデータを扱う 🔄 - @ModelActor hatena-bookmark

少しおさらい的にまとめておきたい。

ModelContext は Non-Sendable。ModelContainer は Sendable。

nonisolated func はインスタンスから値のコピーをスナップショット的に切り出す。

 

🤔 方針


- Singleton で使う。

- ViewModifier として利用する View の onAppear でインスタンス生成。

 

🤔 コード

方針に合わせて、

ざっくりイメージとして下書き。



テンプレートとして随時更新予定。

 

🤔 参考 (Apple 公式サンプルコード)

👉 sample-backyard-birds/Multiplatform/Shop/BirdBrain.swift at 1843d5655bf884b501e2889ad9862ec58978fdbe · apple/sample-backyard-birds hatena-bookmark
👉 sample-backyard-birds/BackyardBirdsData/General/BackyardBirdsDataContainer.swift at 1843d5655bf884b501e2889ad9862ec58978fdbe · apple/sample-backyard-birds hatena-bookmark