2

我的问题描述起来很简单,但似乎很难解决。IconDownloader.m问题是加载图标,使用Apple 官方示例提供的自定义类,如果我释放视图,可以避免崩溃。

我已经将该IconDownloader类添加到我的应用程序中,但很明显,只有当 tableview 是根时,这种方法才有效。最大的问题是当视图不是根视图时。Fe:如果我开始滚动我的第二个视图(应用程序现在加载图标)并且没有时间完成下载,我回到根目录,应用程序崩溃,因为必须用新图标更新视图不存在了。

一种可能的解决方案是OperationQueue在视图中实现一个,但是通过这种方法,我必须在更改视图时停止队列,并在我回来时重新启动它,拥有 N 个队列的想法不会让我充满热情。

有人找到解决这个问题的好方法吗?

4

1 回答 1

5

答案很简单,在dealloc中使用“cancelDownload”方法。

例如。

- (void)dealloc {

 for (NSIndexPath *indexPath in [imageDownloadsInProgress allKeys]) {
  IconDownloader *d = [imageDownloadsInProgress objectForKey:indexPath];
  [d cancelDownload];
 }
 //...
    [super dealloc];
}

它移动完美:-)

于 2010-12-03T05:53:07.030 回答