Фоновые методы не останавливаются после viewWillDisappear/ Dealloc
Прежде всего, проверьте это, чтобы понять, что я делаю
Я не получил свой ответ на вопрос выше и все еще жду его.
Теперь новая проблема заключается в том, что когда я нажимаю кнопку "назад" с помощью следующего кода, методы последнего ViewController все еще работают. Он будет использовать память и продолжать обработку до тех пор, пока не получит ответ (это то, что я хочу сделать, но если пользователь нажмет обратно, я хочу остановить все методы)
[self.navigationController popViewControllerAnimated: YES];
Как мне это остановить?
1 ответ
Вам нужно сделать [getTryAgainTask cancel]
(при условии, getTryAgainTask
имеет тип NSURLSessionDownloadTask
), прежде чем вы получите этот контроллер. Задача загрузки является асинхронной и выполняется независимо от того, какой контроллер (который ее запустил) был освобожден. Это может привести к сохранению циклов, что приведет к аварийному завершению работы приложения. Код, как сейчас, войдет в бесконечный цикл. Лучшим решением было бы сохранить вкладку о количестве повторных попыток (скажем, 3 раза), а затем сообщить пользователю о проблеме, спрашивая, не хочет ли он / она повторить попытку.