2

我有带有图像网址的数组,我需要下载所有图像,在传递给视图之前将它们全部添加到数组中。

我正在使用该片段来下载单个图像

var images: [UIImage] = []
ImageDownloader.default.downloadImage(with: URL(string: "http://abcd.com/image1.jpg")!, options: [], progressBlock: nil) {
        (image, error, url, data) in
        images.append(image!)
      }

但这只是下载 1 张图片。如何同时下载多个图像并在所有图像完成后运行回调?

4

1 回答 1

7

对于您可以调用的每个 URL,downloadImage它将同时开始下载所有图像,当获取每个图像时,您可以将其添加到图像数组中,当图像数组的大小与URLs 数组的大小,然后你可以调用你的callback

imageURLS.forEach({ 
    ImageDownloader.default.downloadImage(with: $0, options: [], progressBlock: nil) {
       (image, error, url, data) in
        images.append(image!)
        if images.count == imageURLS.count {
            callback()
        }
    }
})
于 2016-12-03T18:41:25.783 回答