Асинхронная загрузка изображений - PullRequest
0 голосов
/ 06 февраля 2012

Следующий код находится в пределах cellForRowAtIndexPath. Мне нужно отредактировать этот код в следующих ситуациях:

1.) Если при загрузке изображения возникла проблема, этот блок должен вернуть блок setFailedBlock. Как я могу добавить его в свой код?

2.) Пока изображение загружается, пользователь меняет представление, затем я хочу прекратить выполнение этого кода (остановите загрузку). Я думаю, что я должен написать отменить блок в viewdiddissapear или viewwilldissapear методах. Но я не знаю, как написать код, чтобы отменить загрузку. Может кто-нибудь показать мне, как это сделать?

(примечание: этот блок находится внутри метода cellForRowAtIndexPath, поэтому необходимо обращаться к нему с viewdiddissapear или viewwilldissapear)

dispatch_queue_t concurrentQueue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
//this will start the image loading in bg
dispatch_async(concurrentQueue, ^{        
    NSData *someimageData = [[NSData alloc] initWithContentsOfURL:[NSURL URLWithString:someimageURL]];        
    dispatch_async(dispatch_get_main_queue(), ^{
       [cell.imageviewofsomeimage setImage:[UIImage imageWithData:someimageData ] ];
    });
});

1 Ответ

1 голос
/ 06 февраля 2012

если вы используете NSURLConnection, этот класс имеет отмену

Обсуждение AsyncURLConnection

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...