Swift - обновлять ярлыки в реальном времени
У меня сложный набор математики, который занимает несколько секунд (и это на более быстрых iPhone). Чтобы заинтересовать пользователя и поверить, что программа не спит, мне нужно обновить метки / номера в реальном времени.
Исторически я бы использовал:
DispatchQueue.main.sync {...
Но это дает поток 1 ошибки при запуске в настоящее время. Поэтому я использую:
DispatchQueue.global().async(execute: {
DispatchQueue.main.sync {
self.dateLabel.text = date1Formatter.string(from: newDate!)
// etc
}
})
Сюрприз, сюрприз, это не обновление чисел в реальном времени, только в конце цикла. Как мне "синхронизировать" это?
1 ответ
Решение
Вы не должны вызывать main.sync вообще. Просто позвоните DispatchQueue.main.async Эшли Миллс говорит:
DispatchQueue.global().async(execute: {
DispatchQueue.main.async {
self.dateLabel.text = date1Formatter.string(from: newDate!)
// etc
}
})