iosuinavigationcontrollerafnetworkingpopviewcontroller

background methods are not stopping after viewWillDisappear/ Dealloc


First of all Check This to understand what i am doing

I did not get my answer in above question & still waiting for it.

Now new porblem is that when i click on back button using following code, methods of last ViewController are still running. It will use memory & keep processing untill it gets response(that`s what i want to do but if user press back then i want to stop all methods)

    [self.navigationController popViewControllerAnimated:YES];

How do i stop it?


Solution

  • You need to do [getTryAgainTask cancel] (assuming getTryAgainTask is of type NSURLSessionDownloadTask) before you pop this controller. The download task is asynchronous and runs irrespective of the controller (that fired it) being deallocated. This might cause retain loops, leading the app to eventually crash. The code as of now, will go into an infinite loop. A better solution would be to keep a tab on the number of retries (say 3 times) and then prompt the user about the problem, asking if he/she would like to try again.