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