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 ეხმარება რამდენიმე ასინქრონული ოპერაციის სინქრონიზაციას და კოდის შესრულებას მათ დასრულების შემდეგ.