Вот мое решение:
Вы должны сделать DispatchGroup
и перебрать URL для получения и сохранения данных.
let dispatchGroup = DispatchGroup()
dispatchGroup.notify(queue: .main) {
// Finish all requests
// Hide Loading
}
// Show Loading
for url in urls {
DispatchQueue.main.async {
// Update Loading if you'd like
// For exam: Loading (1 from 10) urls
}
dispatchGroup.enter()
callAndFetchAPI(url, completion: {
dispatchGroup.leave()
}
dispatchGroup.wait()
}
Если вам нравится получать быстрее, вы можете загрузить два URL на итерации.
Это хорошая статья о DispatchGroup:
DispatchGroup