UIViewController
に付いてのか。 @MainActor class UIViewController : UIResponder
https://developer.apple.com/documentation/uikit/uiviewcontrollerTask.init
だと MainActor
上で実行されるけど、 detached
だとそうじゃないからエラーになってしまったと。 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) Task.detached(priority: .background) { [self] in do { let user = try await fetchUser(for: userID) DispatchQueue.main.async { [self] in self.user = user } } catch { // エラーハンドリング } } }
MainActor
に戻したらいけたけど、 DispatchQueue.main
よりもいい方法ないんだっけ?DispatchQueue.main
って型じゃないけど、どうやって MainActor
と紐付いてるの?( DispatchQueue.global()
だとコンパイルエラー)