Junior — Middle
Hogyan biztosítható egy adott kódrészlet végrehajtása több HTTP kérés válaszainak megérkezése után?
sobes.tech MI
Válasz az MI-től
iOS-ben, több HTTP-kérés befejezése után egy kódrészlet végrehajtásához hasznos a DispatchGroup használata. Ez lehetővé teszi egy aszinkron feladatcsoport nyomon követését, és a kód végrehajtását, amikor mindegyik befejeződik.
Swift példában:
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) {
// Ez a blokk a kérések befejezése után fut le
print("Minden kérés befejeződött")
}
Így a DispatchGroup segít több aszinkron művelet szinkronizálásában, és a kód végrehajtásában azok befejezése után.