もしかして、↓の self?.state
も本来ダメなんでしょうか・・・。 final class UserViewController: UIViewController { private let state: UserViewState ... override func viewDidLoad() { super.viewDidLoad() ... let task = Task { [weak self] in guard let state = self?.state else { return } // この self もダメ?🤔 for await _ in state.objectWillChange.values { guard let self = self else { return } // state を View に反映する処理 self.nameLabel.text = state.user?.name } } cancellables.insert(.init { task.cancel() }) } ... }
Task { }
の外側で let state = self.state
しておくのがいいのかな。 state
( UserViewState
)は @MainActor
が付与されてるから Sendable
になるはず。