Самое простое, что нужно сделать, это вызвать следующий метод внутри завершение предыдущего
func saveImages(){
let group = DispatchGroup()
for (index, image) in (self.images.enumerated())! {
group.enter()
KingfisherManager.shared.retrieveImage(with: URL(string:image.imageFile)!) { result in
switch result {
case .success(let value):
self.saveImageDocumentDirectory(image: value.image, imageName: imgNameStr)
case .failure(let error):
print(error) // The error happens
}
group.leave()
}
}
group.notify(queue: .main) {
// do your stuff, check if every image has been downloaded
self.resizeImages() // this will be called after the completion of the current task
}
}
Затем в resizeImages
Я полагаю, есть еще один обработчик завершения, внутри этого вы позвоните shareImgs