IconDownloader, проблема с отложенной загрузкой - PullRequest
2 голосов
/ 08 июня 2010

Моя проблема проста, но ее трудно решить. Проблема заключается в загрузке значков с помощью пользовательского класса, например IconDownloader.m, предоставленного официальным примером от Apple, что позволяет избежать сбоев, если я освобождаю представление.

Я добавил класс IconDownloader в свое приложение, но ясно, что этот подход хорош, только если просмотр таблицы является корнем. Большая проблема, когда представление не является корневым. Например, если я начинаю прокручивать свой второй вид (приложение теперь загружает значки) и, не оставляя времени для завершения загрузки, я возвращаюсь в root, приложение вылетает, потому что представление должно быть обновлено новыми значками. больше не существует

Одним из возможных решений может быть реализация OperationQueue в представлении, но при таком подходе мне придется останавливать очередь, когда я изменяю представление, и перезапускать ее, когда я возвращаюсь, и идея иметь N очередей не сделай меня восторженным.

Кто-нибудь нашел хорошее решение этой проблемы?

1 Ответ

5 голосов
/ 03 декабря 2010

ответ прост, используйте метод "cancelDownload" в dealloc.

, например.

- (void)dealloc {

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

он отлично двигается: -)

...