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