在视图控制器中,用户可以选择图像,然后应用程序上传到服务器。
用户可以一次选择多幅图像,也可以多次选择。
上传的每一张图片都会返回一个URL供以后下载。
有一个提交按钮,以保存其他信息和上传图像到服务器的网址。
我想当用户按下提交按钮时,应用程序将等待所有上传的图片(返回URL或抛出错误)。
我使用等待任务组在每次用户选择图像时并行上传图像。
除了使用sleep()之外,还有其他方法等待上传任务完成吗?
更新:
我上传图片的代码:
let urls = try await upload(images: images, urls: urls)
func upload(images: [UIImage], urls: [String]) async throws -> [String] {
try await withThrowingTaskGroup(of: String.self, returning: [String].self) { group in
for (index, image) in images.enumerated() {
group.addTask { [self] in
guard let url = try? await upload(image: image, to: urls[index]) else {
return ""
}
return url
}
}
var downloadURLs = [String]()
for try await result in group {
if result != "" {
downloadURLs.append(result)
}
}
return downloadURLs
}
}上传图像和提交数据是两个不同的操作:
automatically.
https://stackoverflow.com/questions/73930593
复制相似问题