Загрузка изображений из фоновой темы с использованием блоков

У меня есть следующий метод, который в основном вызывает запрос на загрузку массива NSData изображений в фоновом streamе:

[query findObjectsInBackgroundWithBlock:^(NSArray * objects, NSError * error){ }]; 

В этом случае объекты представляют собой массив NSData. Проблема в том, что если у меня есть 100 изображений для загрузки (100 элементов в массиве). Это означает, что пользователю придется подождать довольно много времени, чтобы увидеть изображение, отображаемое в UITableView. Я хочу, чтобы они увидели изображение, когда оно доступно / загружено. Должен ли я затем изменить код, чтобы он загружал 100 фоновых streamов?

вы можете реализовать что-то вроде этого в cellForRowAtIndexPath:

Таким образом, вы загружаете каждое изображение в фоновом режиме и как только его загружается, соответствующая ячейка обновляется на mainThread.

  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_BACKGROUND, 0), ^(void) { NSData *data0 = [NSData dataWithContentsOfURL:someURL]; UIImage *image = [UIImage imageWithData:data0]; dispatch_sync(dispatch_get_main_queue(), ^(void) { UIImageView* imageView = (UIImageView*)[cell viewWithTag:100]; imageView.image = image; }); }); 

Нет, вам не нужно создавать много фоновых streamов. Используйте NSOperationQueue .

Вы можете создать NSInvocationOperation и установить его в NSOperationQueue

например: Инициализация NSOperationQueue :

 NSOperationQueue *operationQueue = [[NSOperationQueue alloc] init]; 

После создания NSInvocationOperation :

 NSInvocationOperation* downloadOperation = [[NSInvocationOperation alloc] initWithTarget:self selector:@selector(selectorToDownloadImage:) object:YouData]; [operationQueue addOperation:downloadOperation]; [downloadOperation release]; 
  • Возможно открытие всплывающих ссылок в UIWebView?
  • Изменение цвета фона в UIAlertView?
  • objective @ Символ перед строк?
  • Метод доступа после завершения анимации UIImageView
  • Кто-нибудь реализовал API PayPal через собственное приложение для iPhone?
  • UILongPressGestureRecognizer вызывается дважды при нажатии
  • Получение случайного объекта из NSArray без дублирования
  • Как проспать от сна программно, если крышка закрыта?
  • Измените первый символ в каждом слове строки на верхний регистр.
  • Переменная Property vs. instance
  • Как правильно представить popover из UITableViewCell с помощью UIPopoverArrowDirectionRight или UIPopoverArrowDirectionLeft
  • Давайте будем гением компьютера.