Swift 获取 URLSessionDataTask 开始时间/当前运行时间

标签 swift nsurlsession nsurlsessiondatatask

我有一个 URLSessionDataTask 实例,我想知道操作何时开始(一个 Date 对象),这样我就可以计算已经过了多少时间。

我在 Apple 的文档 (https://developer.apple.com/documentation/foundation/urlsessiontasktransactionmetrics#declarations) 中找到了 URLSessionTaskTransactionMetrics,但这并没有显示如何获取 transactionMetrics 属性,除非我遗漏了一些明显的东西。

最佳答案

假设您已经将 View Controller 设置为 URLSessionTaskDelegate,您只需要覆盖 url session didFinishCollecting metrics 方法,迭代指标 transactionMetrics 并获取其 fetchStartDate:

func urlSession(_ session: URLSession, task: URLSessionTask, didFinishCollecting metrics: URLSessionTaskMetrics) {
    for metric in metrics.transactionMetrics {    
        print(task.response?.url ?? "", metric.fetchStartDate?.description(with: .current) ?? "")
    }
}

关于Swift 获取 URLSessionDataTask 开始时间/当前运行时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484442/

相关文章:

ios - 如何在 AVPlayerViewController 中播放视频时快速检测触摸

ios - 如何将触摸 socket 添加到自定义 UIView?

ios - iOS 中的后台下载速度

ios - NSURLSession 的服务器无法访问错误

swift - 有没有办法在带有自定义配置的 NSURLSession 中使用 NSURLProtocol?

iOS:使用良好授权调用 https://api.dropboxapi.com/2/users/get_current_account 时代码状态 400

iOS swift 如何在需要返回值的函数内等待异步任务

ios - 如何使用数据任务实现后台提取?

ios - 在 AppDelegate 中设置 barButtonItem

ios - SwiftUI : Picker does not update correctly when changing datasource