Avatar
UIViewController に付いてのか。 @MainActor class UIViewController : UIResponder https://developer.apple.com/documentation/uikit/uiviewcontroller
8:19 PM
Task.init だと MainActor 上で実行されるけど、 detached だとそうじゃないからエラーになってしまったと。
8:23 PM
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 { // エラーハンドリング } } }
8:23 PM
↑で MainActor に戻したらいけたけど、 DispatchQueue.main よりもいい方法ないんだっけ?
8:25 PM
DispatchQueue.main って型じゃないけど、どうやって MainActor と紐付いてるの?( DispatchQueue.global() だとコンパイルエラー)
8:26 PM
よく考えたら Global Actor の Proposal ちゃんと読んでなかった。ここに答えがあるのかな・・・。 https://github.com/apple/swift-evolution/blob/main/proposals/0316-global-actors.md
This maintains proposals for changes and user-visible enhancements to the Swift Programming Language. - swift-evolution/0316-global-actors.md at main · apple/swift-evolution