我有一个视图,其中包含多个按钮,允许用户单击并上传每个按钮的图像,上传图像后,服务器将返回该图像的URL。视图底部的“保存”按钮,用于调用api以将视图中的所有信息(包括这些图像的URL)保存到我的服务器。
我正在使用Alamofire上传图片。 问题在于:当用户选择要上传的图片时,我会立即调用上传API并在后台上传该照片,我不要等到用户点击“保存”按钮并上传所有信息&图像一下子。
我希望当用户点击“保存”按钮,但图像没有完成上传时,视图将等待上传完成,然后自动调用“保存”功能。我怎么能这样做?
答案 0 :(得分:0)
一种解决方案是使用DispatchGroup。
//Create a dispatch group
let dispatchGroup = DispatchGroup()
for picture in listOfPicturesToUpload {
//Enter the group
dispatchGroup.enter()
self.upload(picture, completion:{
//Leave the group on upload completion
dispatchGroup.leave
})
}
//Called when all the requests are finished
dispatchGroup.notify(queue: DispatchQueue.global(qos: .background)) {
//Call the save function as all the requests are finished.
self.save()
}