Avatar
↓みたいなコードで確認したところ、 deinitcancel は表示されたけど release は表示されず。 deinit { print("deinit") } override func viewDidLoad() { super.viewDidLoad() let task = Task { [weak self] in guard let state = self?.state else { return } for await _ in state.objectWillChange.values { guard let self = self else { print("release"); return } // state を View に反映する処理 self.nameLabel.text = self.state.user?.name } } cancellables.insert(.init { print("cancel"); task.cancel() }) }