Я работаю над приложением, которому требуется несколько минут, чтобы загрузить большой файл и записать его на диск. Клиент сообщил мне, что хочет иметь возможность отменить это в любое время. Что я сделал, так это инкапсулировал глобальный URLSession
, который будет обрабатывать задачу загрузки. После пользовательского ввода я вызову invalidateAndCancel()
в сеансе. Я обнаружил, что метод
urlSession(_ session: URLSession,
downloadTask: URLSessionDownloadTask,
didWriteData bytesWritten: Int64,
totalBytesWritten: Int64,
totalBytesExpectedToWrite: Int64)
не прекращает вызываться даже после того, как сеанс был признан недействительным и отменен.
ВОПРОС
Как заставить этот метод прекратить выполнение?