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)