如何从网络上下载一组 url 图片

How can I download an array of url images from the web

使用正则表达式,我提取了 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,但我想先解决这个问题。

通常是在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 
    }

}