【问题标题】:How to loop download pdf in swift4 from array of url如何从url数组循环下载swift4中的pdf
【发布时间】:2018-04-05 08:11:43
【问题描述】:

我想从我的服务器端从 url 数组循环下载 pdf 文件,我想让它在用户关闭视图控制器并打开主窗体时在后台运行,同样在主窗体中,我们可以再次打开下载视图控制器查看下载进度。我已经用 Alamofire 完成了它并将其用作递归(在下载每个文件完成后再次调用自身并使用带有 popLast 函数的 for-loop 从数组中弹出 url)但问题是我无法跟踪在后台,我无法检查后台请求是否已经在运行。如果我们在alamofire中做不到,那么urlsession可以实现我想要做的吗?

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

【问题讨论】:

    标签: alamofire swift4 urlsession


    【解决方案1】:

    到目前为止,我从您的描述中了解到您需要同步所有任务。在您的情况下,您可以使用 DispatchGroup。它允许工作的聚合同步。您可以使用它提交多个不同的 pdf URL 以下载并跟踪它们何时通过 group.notify 方法完成。

    查看下面的示例代码:

    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
     }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-20
      • 2014-11-14
      • 2019-09-21
      • 2021-01-09
      • 1970-01-01
      • 1970-01-01
      • 2019-07-14
      • 2019-05-19
      相关资源
      最近更新 更多