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