URLSessionDownloadTask: отменить запись данных

Я работаю над приложением, которому требуется несколько минут, чтобы загрузить большой файл и записать его на диск. Клиент сообщил мне, что хочет иметь возможность отменить это в любое время. Что я сделал, так это инкапсулировал глобальный URLSession, который будет обрабатывать задачу загрузки. После пользовательского ввода я вызову invalidateAndCancel() в сеансе. Я обнаружил, что метод

urlSession(_ session: URLSession, 
        downloadTask: URLSessionDownloadTask,    
        didWriteData bytesWritten: Int64, 
   totalBytesWritten: Int64, 
   totalBytesExpectedToWrite: Int64) 

не прекращает вызываться даже после того, как сеанс был признан недействительным и отменен.

ВОПРОС

Как заставить этот метод прекратить выполнение?


person Brandon A    schedule 18.04.2017    source источник


Ответы (1)