Sobes.tech
Junior — Middle

Kuidas tagada konkreetse koodiploki täitmine pärast vastuste saamist mitmest HTTP-päringust?

sobes.tech AI

Vastus AI-lt

iOS-is, et rohkemate HTTP-päringute lõpetamise järel koodi ploki täitmiseks on mugav kasutada DispatchGroup-i. See võimaldab jälgida asünkroonsete ülesannete rühma ja käivitada kood, kui kõik need on lõpetatud.

Näide Swiftis:

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) {
    // See plokk käivitatakse pärast kõigi päringute lõpetamist
    print("Kõik päringud on lõpetatud")
}

Seega aitab DispatchGroup sünkroniseerida mitmeid asünkroonseid operatsioone ja käivitada koodi nende lõpetamise järel.