Junior — Middle
Ինչպե՞ս ապահովել որոշակի կոդի բլոկի կատարմանը միաժամանակ մի քանի HTTP հարցումների պատասխանները ստանալուց հետո:
sobes.tech AI
Պատասխան AI-ից
iOS-ում, մի քանի HTTP հարցումների ավարտից հետո կոդի բլոկը կատարելու համար հարմար է օգտագործել DispatchGroup-ը: Այն թույլ է տալիս հետևել ասինխրոնային առաջադրանքների խմբին և կատարել կոդը, երբ բոլորը ավարտվեն:
Swift-ում օրինակ՝
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) {
// Այս բլոկը կկատարվի բոլոր հարցումների ավարտից հետո
print("Բոլոր հարցումները ավարտվեցին")
}
Այսպիսով, DispatchGroup-ը օգնում է սինխրոնիզացնել մի քանի ասինխրոնային գործողություններ և կատարել կոդը դրանց ավարտից հետո։