Отмена задачи в SwiftUIIOS

Программируем под IOS
Anonymous
Отмена задачи в SwiftUI

Сообщение Anonymous »


Я столкнулся со странным поведением (или, по крайней мере, с тем, которое мне непонятно) при попытке отменить Задание. Вот минимальный пример: у меня есть Задача, которая бездействует 30 секунд, а затем увеличивает счетчик.

Однако, если я вызову .cancel() для этой задачи до того, как пройдет 30 секунд, счетчик немедленно увеличится.

Я ожидал, что отмена Задачи не приведет к увеличению значения счетчика; есть ли у кого-нибудь представление о том, что здесь происходит?

Спасибо!
импортировать SwiftUI структура ContentView: Просмотр { Задача @State var: Task? = nil // ссылка на задачу @State счетчик переменных = 0 var body: some View { VStack(интервал: 50) { // отображаем значение счетчика и создаем задачу Text("счетчик равен \(self.counter)") .onAppear { self.task = Задача { пытаться? ждут Task.sleep(наносекунд: 30_000_000_000) self.counter += 1 } } // кнопка отмены Кнопка("Отмена") { self.task?.cancel() //

Вернуться в «IOS»