Avatar
Avatar
koher
Task.init は現在の Actor コンテキストを引き継ぐと思うので 今回の場合は @MainActor in はいらない
↓みたいに Task.init ではなく Task.detached を挟んで context を引き継がないときなので MainActor に戻す必要があるかと。 override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) Task.detached(priority: .background) { [self] in do { let user = try await fetchUser(for: userID); Task { @MainActor in self.user = user } } catch { // エラーハンドリング } } }
あああ、ごめんなさい、読み違えてました