Avatar
Avatar
shiz
> 出てほしいですよね。ただ、エラーにしてしまうと既存コードが軒並み通らなくなるから厳しい?警告が限界でしょうか。
今のSwift Coreチーム(Dougさん?)の考えだと、Swift5.X + -warn-concurrencyフラグで警告、Swift6にしたらエラーという流れになる感じなのかなと僕は思ってます。
Concurrency 的に正しいコードは↓のようになるんでしょうか。
どんな状況でもMainActorで呼び出したい場合はそうなるのかなと思ってます。ただ今回のケースだとUILabelを扱うのがUIViewControllerの中以外だとないのかなと思っており、MainActor.runは必要ないのではと思いました(どうなんでしょう?)🤔
Swift5.X + -warn-concurrencyフラグで警告、Swift6にしたらエラーという流れ
なるほど。
ただ今回のケースだとUILabelを扱うのがUIViewControllerの中以外だとないのかなと
あー、 TaskMainActor を受け継ぐからということですね。↑でひろんさんと話していた、 actor-isolated な API の中に書かれたクロージャ式の中に書かれた Task は元の actor-isolated な context を引き継ぐというので満たされているということですね。
(edited)