我的问题很容易描述,但似乎很难解决。问题是使用Apple官方示例提供的自定义类(如IconDownloader.m)自定义类加载图标,以避免在释放视图时发生崩溃。

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

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

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

最佳答案

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

例如。

- (void)dealloc {

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


它移动完美:-)

关于iphone - IconDownloader,带有延迟下载的问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2995709/

10-14 21:08
查看更多