Junior — Middle
Jak zajistí vykonání určitého bloku kódu po obdržení odpovědí z několika HTTP požadavků?
sobes.tech AI
Odpověď od AI
V iOS je, pro vykonání bloku kódu po dokončení několika HTTP požadavků, je vhodné použít DispatchGroup. Umožňuje sledovat skupinu asynchronních úloh a spustit kód, když jsou všechny dokončeny.
Pří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 se spustí po dokončení všech požadavků
print("Všechny požadavky jsou dokončeny")
}
Tímto způsobem DispatchGroup pomáhá synchronizovat několik asynchronních operací a spustit kód po jejich dokončení.