Junior — Middle
Jak zapewnić wykonanie określonego bloku kodu po otrzymaniu odpowiedzi z kilku żądań HTTP?
sobes.tech AI
Odpowiedź od AI
W iOS, aby wykonać blok kodu po zakończeniu wielu żądań HTTP, wygodnie jest użyć DispatchGroup. Pozwala on śledzić grupę asynchronicznych zadań i wykonać kod, gdy wszystkie zostaną zakończone.
Przykład w 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) {
// Ten blok zostanie wykonany po zakończeniu wszystkich żądań
print("Wszystkie żądania zostały zakończone")
}
W ten sposób DispatchGroup pomaga synchronizować wiele operacji asynchronicznych i wykonać kod po ich zakończeniu.