繁体   English   中英

iOS Swift 3,Alamorfire:在调用函数之前,等待所有图像上传完成

[英]iOS Swift 3, Alamorfire: Wait for all image uploading to be finished before calling a function

我有一个包含多个按钮的视图,允许用户单击并为每个按钮上传图像,在上传图像后,服务器将返回该图像的URL。 视图底部的“保存”按钮调用api将视图中的所有信息(包括这些图像的URL)保存到我的服务器。

在此处输入图片说明

我正在使用Alamofire上传图像。 问题是:当用户选择要上传的图像时,我会立即调用上传API并在后台上传该照片,而不必等到用户单击“保存”按钮并立即上传所有信息和图像。

我希望当用户单击“保存”按钮,但是图像尚未完成上传时,视图将等待上传完成,然后自动调用“保存”功能。 我怎样才能做到这一点?

一种解决方案是使用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()
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM