Junior — Middle
Kā nodrošināt noteikta koda bloka izpildi pēc atbilžu saņemšanas no vairākiem HTTP pieprasījumiem?
sobes.tech AI
Atbilde no AI
iOS, lai izpildītu koda bloku pēc vairāku HTTP pieprasījumu pabeigšanas, ir ērti izmantot DispatchGroup. Tas ļauj uzraudzīt asenhronisko uzdevumu grupu un izpildīt kodu, kad visi tie ir pabeigti.
Piemērs Swift valodā:
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) {
// Šis bloks tiks izpildīts pēc visu pieprasījumu pabeigšanas
print("Visi pieprasījumi ir pabeigti")
}
Tādējādi DispatchGroup palīdz sinhronizēt vairākas asenhroniskas operācijas un izpildīt kodu pēc to pabeigšanas.