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
        }
     })
Другие вопросы по тегам