Swift Get URLSessionDataTask время начала / текущее время работы - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть экземпляр URLSessionDataTask, и я хотел бы знать, когда началась операция (объект Date), чтобы я мог рассчитать, сколько времени прошло.

Я нашел URLSessionTaskTransactionMetricsв документации Apple (https://developer.apple.com/documentation/foundation/urlsessiontasktransactionmetrics#declarations), но это не показывает, как получить свойство transactionMetrics, если я не пропускаю что-то очевидное.

1 Ответ

1 голос
/ 03 апреля 2019

Предполагая, что вы уже установили свой контроллер представления в качестве URLSessionTaskDelegate, вам просто нужно переопределить сеанс URL didFinishCollecting метод метрик, выполнить итерации по метрике транзакцииMetrics и получить его fetchStartDate:

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