Мне нравится обновлять текст на экране, чтобы информировать пользователя о прогрессе. Я использую текст в SwiftUI. Всякий раз, когда я изменяю это сообщение, оно должно обновляться, даже если процесс все еще выполняется. Например:
@State private var message = "-"
var body: some View {
VStack {
Button("Run") {
print("Tapped!")
for i in 0 ... 100 {
self.message = "\(i)"
for _ in 1...1000 {
print(".") // some time consuming stuff
}
}
}
Text(message)
.frame(width: 100)
.padding()
}
.padding(40)
}
Когда я меняю сообщение, оно должно обновлять экран. К сожалению, он обновляет только текст, когда циклы завершены, поэтому он показывает 100. Он должен показывать 1, 2, ... 100.
Нужны ли мне специальные сложные очереди, как в разработке classi c используя «DispatchQueue.main.asyn c» и т. д. c или в SwiftUI есть более простой способ?