【问题标题】:Kingfisher Multiple Parallel Image Download翠鸟多并行图像下载
【发布时间】:2016-12-05 01:34:06
【问题描述】:

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

我正在使用该 sn-p 下载单个图像

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 张图片。如何同时下载多张图片并在所有图片完成后运行回调?

【问题讨论】:

    标签: ios swift kingfisher


    【解决方案1】:

    对于每个可以调用downloadImage的URL,这将同时开始下载所有图像,当获取每个图像时,您可以将其添加到图像数组中,当图像大小时,您知道所有图像完成下载数组与 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()
            }
        }
    })
    

    【讨论】:

    • 我需要在所有任务完成后运行回调,谢谢。
    • 你是对的 Gert;当images数组与urls数组mTuran大小相同时调用回调,这意味着所有图像下载完成,如果没有错误当然,在这种情况下是一个名为callback的闭包,但它可以是一个函数.
    • 我正在使用 Kingfisher,并正在寻找一种方法来了解类似这样的循环何时结束。如果出现错误怎么办!?
    • 闭包中有错误可用,就像将图像附加到数组一样,您可以将错误附加到数组或引用最后一个错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-21
    • 1970-01-01
    • 2019-06-15
    • 2017-09-04
    • 2019-06-02
    • 1970-01-01
    相关资源
    最近更新 更多