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 помага да се синхронизират няколко асинхронни операции и да се изпълни код след тяхното завършване.