Sobes.tech
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.