Дело в том, что у вас есть вложенные замыкания, поэтому, когда вы вызываете:
SDWebImageManager.shared.loadImage(with: url, options: .refreshCached, progress: .none ,completed: { (image, data, error, _, _, _) in
if let error = error{
print("Couldn't download image")
self.downloadImage(i: i, completion: {_ in
})
else{
print("Could download image")
self.arrayImages.append(image!)
}
})
Все внутри него будет вызываться только после завершения loadImage, поэтому ваше "for" будет вызывать "SDWebImageManager.shared.loadImage "6 раз, а затем вызвать" завершение ("Готово") ".
Таким образом, ваш код будет вызывать" завершение ("Готово") ", прежде чем он завершит обработку изображений, поэтому перезагружает данные, когда естьнет изображений или, возможно, пары.
Вам нужно подождать, пока загрузка завершится, прежде чем вызывать reloadData (), это будет зависеть от ваших потребностей, но вы можете просто получить изображения по мере необходимости, когда выЯ собираюсь установить изображения для содержимого ячейки, вызвать выборку изображений (сначала из кэша или загрузить, если они недоступны), а затем просто обновить, где они показаны.Таким образом, ваше приложение будет отображаться на экране более динамично, а также настраивать изображения-заполнители.