Reputation: 229
I have a UIViewController subclass that loads a bunch of images for each cell in a tableview asynchronously which is handled by a separate download class. I keep a list of all of these download requests in a dictionary which is keyed to the index of the cell that is requesting the image.
My question is i where should i put the code that cancels the image download if the viewcontroller is popped off the navcontroller? I need to do this because if the user hits back while there are still images being downloaded (which could take a while) then when they are finished downloading the viewcontroller has already been released.
I cant put it in the viewWillDisappear method because i do not want to stop the download if the user clicks on a separate tab and only when the hit the back button. For now i put this code in the viewcontrollers dealloc method which works fine although it doesnt seem right for some reason. I thought of using the viewDidUnload method but it seems this is only called when there is a low memory warning?
Any ideas?
Upvotes: 1
Views: 1058
Reputation: 75058
You may want to consider putting the code in viewWillDisappear:
anyway, after all if the screen you are navigating to needs anything loaded it will be slowed by the background image load...
Upvotes: 0
Reputation: 25318
dealloc
is the perfect place for this as the view controller gets deallocated and you are responsible to clean your stuff up.
Upvotes: 4