Junior — Middle
Ako zabezpečiť vykonanie určitého bloku kódu po obdržaní odpovedí z viacerých HTTP požiadaviek?
sobes.tech AI
Odpoveď od AI
V iOS-e, pre vykonania bloku kódu po dokončení viacerých HTTP požiadaviek je vhodné použiť DispatchGroup. Umožňuje sledovať skupinu asynchrónnych úloh a spustiť kód, keď všetky dokončia.
Príklad v Swift:
let dispatchGroup = DispatchGroup()
var results: [Data] = []
for url in urls {
dispatchGroup.enter()
URLSession.shared.dataTask(with: url) { data, response, error in
if let data = data {
results.append(data)
}
dispatchGroup.leave()
}.resume()
}
dispatchGroup.notify(queue: .main) {
// Tento blok sa vykoná po dokončení všetkých požiadaviek
print("Všetky požiadavky sú dokončené")
}
Týmto spôsobom DispatchGroup pomáha synchronizovať viacero asynchrónnych operácií a spustiť kód po ich dokončení.