sink の中が MainActor 上と判定されるのはなんでだろう?ということですね。もしかしたら、ひろんさんもこのことを言ってる?( Task が出てきてないから違う?) state .objectWillChange .receive(on: DispatchQueue.main) .sink { [self] _ in // state を View に反映する処理 nameLabel.text = state.user?.name } .store(in: &cancellables) どこかで、 Task.init はできるだけコンテクストを推定するみたいなのを読んだ気がしていて、 DispatchQueue.main から推定されている? sink の中って MainActor 上で実行されるんでしょうか?だとしたら、 reveive(on: DispatchQueue.main) を消しても大丈夫?receive(on:) を消したら、sink の中はメインスレッドとは限らなかった (edited)