在UIViewController中放置清理代码的位置?

时间:2010-11-22 22:21:40

标签: iphone uiviewcontroller

我有一个UIViewController子类,它为一个tableview中的每个单元格异步加载一堆图像,由一个单独的下载类处理。我在字典中保留了所有这些下载请求的列表,该字典键入了请求图像的单元格的索引。

我的问题是,如果viewcontroller从navcontroller弹出,我应该把代码取消图像下载?我需要这样做,因为如果用户在下载静止图像时回击(这可能需要一段时间),那么当他们完成下载时,视图控制器已经被释放。

我无法将其放在viewWillDisappear方法中,因为如果用户单击单独的选项卡并且仅在点击后退按钮时我不想停止下载。现在我将此代码放在viewcontrollers dealloc方法中,虽然由于某种原因看起来不对,但它工作正常。我想过使用viewDidUnload方法,但似乎只有在内存不足警告时才调用它?

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

dealloc是一个完美的地方,因为视图控制器被取消分配,你有责任清理你的东西。

答案 1 :(得分:-1)

您可能要考虑将代码放在viewWillDisappear:中,毕竟如果您导航到的屏幕需要加载任何内容,它将因背景图像加载而变慢...

相关问题