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