Avatar
もしかして、↓の 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 しておくのがいいのかな。 stateUserViewState )は @MainActor が付与されてるから Sendable になるはず。
4:09 AM
あれ?違うか。 VC は @MainActor だからいいのか。 (edited)
4:12 AM
これ↓も本来 MyViewClassMainActor だから警告出ないのが正しい? print(value) // Cannot use parameter 'self' with a non-sendable type 'MyViewClass' from concurrently-executed code (edited)