【问题标题】:How can I download an array of url images from the web如何从网上下载一组 url 图片
【发布时间】:2019-11-28 14:00:30
【问题描述】:

使用正则表达式,我提取了 html 字符串、所需的图像并将它们放入一个数组中。

此时的数组是什么样子的:

var collectionPhotoLinks = [
        "http:static-cdn3.vigbo.tech/u65463/78125/blog/5162255/4423863/57114004/500-codleto-889a051259ba894edee37b8da63ddbe9.jpg",
        "http:static-cdn3.vigbo.tech/u65463/78125/blog/5162255/4423863/57114004/500-codleto-9516ab3514e07bde176f117e70c7ba85.jpg"]

我可以上传一张图片

func downloadImages () {

    guard let url = URL(string:
        "http:static-cdn3.vigbo.tech/u65463/78125/blog/5162255/4423863/57114004/500-codleto-889a051259ba894edee37b8da63ddbe9.jpg")
            else { return }

    URLSession.shared.dataTask(with: url) { (data, response, error) in

        if let data = data, let image = UIImage(data: data) {
            DispatchQueue.main.async {

                self.imageView.image = image

            }
        }
    } .resume()
}

如果将“url”替换为数组“collectionPhotoLinks”,则xcode分别需要字符串而不是数组

那么问题来了,我如何从数组中加载所有图像?将来我需要将它们发送到 tableview 或 collectionview,但我想先解决这个问题。

【问题讨论】:

    标签: swift xcode image tableview collectionview


    【解决方案1】:

    通常是你在cellForRowAt里面下载,比如SDWebImage,但是如果你需要全部预下载,你可以试试

    let arr = ["url1","urls"]
    
    func downloadImages () {
    
        let g = DispatchGroup()
    
        for item in arr {
    
            guard let url = URL(string:item)
                    else { return }
    
            g.enter()
    
            URLSession.shared.dataTask(with: url) { (data, response, error) in
    
                if let data = data, let image = UIImage(data: data) {
    
                    //
                }
    
                g.leave()
    
            } .resume()
        }
    
        g.notify(queue: .main) {
    
            // done 
        }
    
    }
    

    【讨论】:

    • 感谢您的快速回复。不幸的是,我还没有研究过 GCD 和 Dispatch Queues。但是在收到几个答案后,我明白我应该在继续之前研究这个主题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-03-30
    • 2015-09-15
    • 2021-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多