Вопрос проверяет знание асинхронного программирования и способов синхронизации нескольких сетевых операций.
Для параллельных запросов используют DispatchGroup, async/await или OperationQueue. Эти инструменты позволяют запустить несколько задач одновременно и получить уведомление, когда все они завершатся. Выбор подхода зависит от версии iOS и архитектуры проекта. Современный Swift предпочитает async/await.
Выполнение нескольких сетевых запросов — типовая задача для клиентских приложений.
Подходит для GCD-ориентированного кода:
let group = DispatchGroup()
group.enter()
requestA { group.leave() }
group.enter()
requestB { group.leave() }
group.notify(queue: .main) {
// все запросы завершены
}
Определение: async/await — современный способ работы с асинхронным кодом.
async let a = loadA()
async let b = loadB()
let resultA = await a
let resultB = await b
Используется, когда:
нужны зависимости
требуется отмена
важен контроль состояния операций
Для новых проектов лучше использовать async/await. DispatchGroup остаётся актуальным для GCD-кода и старых версий iOS.