Avatar
上記に関連して疑問があるのですが、 UIViewControllerのサブクラスに@MainActorを付けるとTaskのイニシャライザのクロージャ内のwarningが消えるのは、なぜなのでしょうか? // Xcode13.1 // -Xfrontend -warn-concurrency を設定した状態で @MainActor protocol MyViewProtocol: UIViewController { func f() } class MyViewClass: UIViewController, MyViewProtocol { let value = 0 func f() { Task { print(value) // Cannot use parameter 'self' with a non-sendable type 'MyViewClass' from concurrently-executed code } } } @MainActor class MyOtherViewClass: UIViewController, MyViewProtocol { let value = 0 func f() { Task { print(value) // 何も出力されない } } } (edited)