我有一个URLSessionDataTask实例,我想知道操作何时开始(一个Date对象),这样我就可以计算已经过去了多少时间。
我在苹果的文档(https://developer.apple.com/documentation/foundation/urlsessiontasktransactionmetrics#declarations)中找到了URLSessionTaskTransactionMetrics,但这并不能说明如何获取transactionMetrics属性,除非我遗漏了一些明显的东西。

最佳答案

假设您已经将视图控制器设置为URLSessionTaskDelegate,则只需覆盖url sessiondidFinishCollectingmetrics方法,迭代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) ?? "")
    }
}

08-04 14:43