DispatchGroup — это механизм в Swift's Grand Central Dispatch (GCD), который позволяет тебе отслеживать и координировать несколько асинхронных задач, получая единое уведомление, когда все они завершены.
Основной рабочий процесс включает три ключевых метода:
enter() — вызывается перед началом каждой асинхронной задачиleave() — вызывается когда задача завершенаnotify(queue:) — выполняет блок завершения, когда все задачи финишируютlet group = DispatchGroup()
group.enter()
fetchUserData { group.leave() }
group.enter()
fetchPosts { group.leave() }
group.notify(queue: .main) {
// Все задачи завершены
updateUI()
}
enter() должен быть сбалансирован соответствующим leave(), иначе группа никогда не отправит уведомлениеwait() как синхронную альтернативу notify(), но избегай вызывать её на главном потоке, чтобы не заблокировать UIDispatchGroup требует, чтобы каждый вызов enter() был спарен ровно с одним вызовом leave(), иначе уведомление никогда не будет отправлено.
Новый — ещё не проверен сообществом
Вы