如何 "get/download" data/json 来自 dataTask(with: request)

How to "get/download" data/json from a dataTask(with: request)

我想获取 json 文件的下载进度。我当前的代码使用如下所示的完成处理程序:

        let dataTask = downloadSession.dataTask(with: request){   
        data,response,error in                                                       

        // do....try here I handle the json file successfully           

        }

        dataTask.resume()

问题是我正在尝试使用 URLSessionDataDelegate 和函数:

   func urlSession(_ session: URLSession, dataTask: URLSessionDataTask, didReceive data: Data) {
         displayAlertMessage(message: "Data was received")
    }

上面的函数永远不会被调用。根据我在网络上所做的研究,其背后的原因是 Handler 阻止了它并且不让委托按照预期的方式工作。那么我该如何解决这个问题呢?

我需要来自处理程序的数据,但我还需要来自 URLSessionDataDelegate 的下载进度。该怎么办?有没有办法同时获得两者?

您只能使用一种 API – 基于块或基于委托。

考虑

  • JSON 文件大到需要百分比进度指示器吗?
  • 不确定旋转指标是否足够?

在 iOS 中,您可以简单地使用 isNetworkActivityIndicatorVisible of UIApplication