У меня есть последовательность задач, которые должны выполняться последовательно, поэтому они отображаются в DispatchQueue.Чтобы сообщить пользователю, что он пыхтит, я запускаю значок активности.Но как мне остановиться, если не в главном потоке?
Логически я пытаюсь достичь:
override func viewDidLoad() {
super.viewDidLoad()
self.activityIcon.startAnimating()
DispatchQueue.main.async {
self.bigTask1()
}
DispatchQueue.main.async {
self.bigTask2()
self.activityIcon.stopAnimating()
}
}
Это, очевидно, приводит к ошибке времени выполнения: "UIActivityIndicatorView.stopAnimating()
должен использоваться изтолько основной поток ".
Помещение stopAnimating()
в основную очередь включает и выключает его так быстро, что никто его никогда не увидит.
Что такое одобренный способ вызова функций, подобных этойmain
очередь?
Большое спасибо.PS Я читал ответы на подобные вопросы на SO, но не совсем их понимаю.