Swift获取URLSessionDataTask开始时间/当前运行时间
Swift Get URLSessionDataTask start time / current operation time
我有一个 URLSessionDataTask
实例,我想知道操作何时开始(一个 Date
对象),这样我就可以计算已经过了多少时间。
我在 Apple 的文档 (https://developer.apple.com/documentation/foundation/urlsessiontasktransactionmetrics#declarations) 中找到了 URLSessionTaskTransactionMetrics
,但这并没有说明如何获取 transactionMetrics
属性,除非我遗漏了什么显而易见。
假设您已经将视图控制器设置为 URLSessionTaskDelegate
,您只需要覆盖 url 会话 didFinishCollecting 指标方法,遍历指标 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) ?? "")
}
}
我有一个 URLSessionDataTask
实例,我想知道操作何时开始(一个 Date
对象),这样我就可以计算已经过了多少时间。
我在 Apple 的文档 (https://developer.apple.com/documentation/foundation/urlsessiontasktransactionmetrics#declarations) 中找到了 URLSessionTaskTransactionMetrics
,但这并没有说明如何获取 transactionMetrics
属性,除非我遗漏了什么显而易见。
假设您已经将视图控制器设置为 URLSessionTaskDelegate
,您只需要覆盖 url 会话 didFinishCollecting 指标方法,遍历指标 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) ?? "")
}
}