如何从URL数组中循环下载Swift4中的PDF



我想从我的服务器端的url阵列循环下载pdf文件,当用户关闭viewController并打开主单时,我想使其在后台运行,也以主形式打开我们可以再次打开下载ViewController,以查看下载的进度。我已经使用Alamofire进行了此操作,并将其用作递归(在下载每个文件完成并使用Poplast函数的for-loop之后再次调用自身来弹出来自数组的URL(,但问题是我无法跟踪该请求背景,我无法检查背景请求是否已经在运行。如果我们不能在Alamofire做到这一点,urlsession可以实现我想做的事吗?

请帮助。我真的需要您的所有帮助,也是我是iOS和Stackoverflow的初学者,如果我错了某个地方,请原谅我。

到目前为止,我从您的描述中了解您需要同步所有任务。在您的情况下,您可以使用 dispatchGroup 。它允许工作的汇总同步。您可以使用它提交多个不同的pdf URL,以下载和跟踪 group.notify methot。

检查下面的示例代码:

func fetchPdfFiles(){
let group = DispatchGroup()
let urlList = ["Pdfurl1", "Pdfurl2", "Pdfurl3"]
// start your progressbar if you like
for str in urlList {
    group.enter()
    call_your_alamofire_Request(url: str, onCompletion: { (response) in
        do  {
            //save your pdf
            //Update progress bar
        } catch let error {
            print("Error:", error)
            //Handle error
        }
        group.leave()
    })
}
group.notify(queue: .main) {
    print("- all pdfs Download done")
    // Finally you need to do what ever if you like
    //Stop progressbar
 }
}

最新更新