Отмена задачи в 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() //
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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