Я использую код, который я получил здесь, чтобы загрузить некоторые изображения и представить их в виде коллекции. Вот код:
func downloadImage (url: URL, completion: () -> Void){
let session = URLSession(configuration: .default)
let downloadPicTask = session.dataTask(with: url) { (data, response, error) in
if let e = error {
print("Error downloading image \(e)")
} else {
if let res = response as? HTTPURLResponse {
print("Downloaded image with response code \(res.statusCode)")
if let imageData = data {
let image = UIImage(data: imageData)
self.globalImages.append(image!)
print("what does this say?-->", self.globalImages.count)
} else {
print("Couldn't get image: Image is nil")
}
} else {
print("Couldn't get response code for some reason")
}
}
}
completion()
downloadPicTask.resume()
}
И я вызываю загружаемое изображение, потому что загрузил, где URL - это URL. (этот URL работает, и я могу загрузить изображение).
downloadImage(url: url) { () -> () in
collectionView.ReloadData()
}
Обработчик завершения, который я пробовал, слишком рано вызывает reloadData (). Я хочу, чтобы он был вызван, когда изображение будет загружено? Таким образом, изображение может отображаться сразу после загрузки. Что не так с этим кодом?
Пожалуйста, помогите!