@Published var をメインスレッドで受け取る方法
解決したいこと
Modelを Published var として ViewModel内に保持し、ViewからObserveしています。
モデルの処理がバックグラウンドスレッドに入った時に、モデルの値をPublishすると、Xcodeのスレッドチェッカーが反応して
Publishing changes from background threads is not allowed; make sure to publish values from the main thread (via operators like receive(on:)) on model updates.
というワーニングが出ます。
@StateObject var viewModel = ViewModel()
class ViewModel: ObservableObject {
@Published var model = Model()
var thisValue:String {
return model.thisValue // この値をViewで使いたい
}
struct Model {
var thisValue:String = "value" // この値をバックグラウンドスレッドで変更して、メインスレッドでパブリッシュしたい
メインスレッドでモデルの値を受け取る方法をしりたいのですが、
なかなかわからず質問させていただきました。
教えていただけr教えていただけるととても嬉しいです。