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