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.