Получить resumeData из объекта ошибки, полученного в методе делегата, при сбое задачи URLSessionDownload - PullRequest
0 голосов
/ 30 апреля 2018

Я реализовал URLSessionDownloadDelegate, и всякий раз, когда моя downloadTask не срабатывает, я получаю объект ошибки в одном из методов обратного вызова делегата. Когда я присоединяю отладчик и печатаю этот объект ошибки в консоль, я вижу, что он содержит объект ResumeData. Однако я не могу получить к нему доступ в коде, используя объект ошибки.

Это вывод консоли:

(lldb) po error.debugDescription "Необязательно (ошибка Домен = NSURLErrorDomain Код = -999 \ "отменено \" UserInfo = {NSErrorFailingURLStringKey = https://mysampleurl, NSErrorFailingURLKey = https://mysampleurl, NSURLSessionDownloadTaskResumeData = <3c3f786d 6c207665 7273696f 6e3d2231 2e302220 656e636f 64696e67 3d225554 462d3822 3f3e0a3c 21444f43 54595045. , , 692c2031 37204a75 6e203230 31362031 373a3433 3a303120 474d543c 2f737472 696e673e 0a3c2f64 6963743e 0a3c2f70 6c697374 3e0a>, NSLocalizedDescription = отменено}) "

Я хочу получить доступ к "NSURLSessionDownloadTaskResumeData" из вывода объекта ошибки выше

Определение метода:

func urlSession (_ сессия: URLSession, задача: URLSessionTask, Ошибка didCompleteWithError: Ошибка?)

1 Ответ

0 голосов
/ 30 апреля 2018

Я недавно работал над этим требованием и создал класс: https://github.com/skdevil/PrakrstaFileDownloader

Вот как вы получаете резюмеData:

func urlSession(_ session: URLSession, task: URLSessionTask, didCompleteWithError error: Error?) {
        if error != nil{
            let errorString = (error! as NSError).userInfo
            if let resumeData = errorString["NSURLSessionDownloadTaskResumeData"] as? Data, let urlKey = errorString["NSErrorFailingURLStringKey"] as? String {

            }
        }
    }
...