, когда я нахожусь в главном потоке и пытаюсь выполнить DispatchQueue.main.async, это не приводит к сбою приложения, а к DispatchQueue.main.sync. Почему так?
Согласно Документам
sync - отправляет блок в очередь отправки для синхронного выполнения. В отличие от dispatch_async (: :), эта функция не возвращается, пока не закончится блок. Вызов этой функции и ориентация на текущую очередь приводит к тупику
потому что очередь ждет себя