swift - 如何从网上下载一组 url 图片
问题描述
使用正则表达式,我提取了 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
}
}
推荐阅读
- node.js - 读取csv文件后返回结果
- javascript - React Native - 如何使用 AsyncStorage 处理异步
- r - R在用户定义的函数中引用一个单元格
- c# - 检查面板中的任何 dropdownlist.selectedvalue 是否包含某个值
- php - print_r 不允许我逃跑 []
- c - c混淆的按位运算
- python-3.x - 将列中的值合并为一列
- postgresql - Postgres 的 INSERT 函数出现语法错误
- asp.net - 在 .net 核心 Restful API 中,如何更改 URL 格式以获取具有单个方法名称的双参数?
- java - spring mongo 中是否有任何内置函数可用于从具有一对一关系的两个不同文档中提取数据?