如何从网络上下载一组 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
}
}
使用正则表达式,我提取了 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
}
}