На iOS, как заставить cell.imageView обновить свой контент?

Я экспериментирую вtableView:cellForRowAtIndexPath установить изображение, позвонив

[self downloadImage:urlString andSetIntoCellImageView:cell]

И вdownloadImageпозвонитNSURLConnection:sendAsynchronousRequest (только для iOS 5 и выше), а в блоке завершения установите изображение с помощью

cell.imageView.image = [UIImage imageWithData:data];   // data is downloaded data

и это работает, если вtableView:cellForRowAtIndexPath,imageView заполнен фиктивным изображением-заполнителем - и мне интересно, как обновляется новое изображение,setNeedsDisplay сделать перекрас? Но если я не установлю изображение заполнителя, то новое изображение вообще не будет отображаться. Интересно, какой механизм можно использовать, чтобы заставить его показывать изображение?

Если я использую

[cell.imageView setNeedsDisplay]

или же

[cell setNeedsDisplay];

в блоке завершения он не сработает, и если я использую

[self.table reloadRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] 
                            withRowAnimation:UITableViewRowAnimationAutomatic];

в блоке завершения, сделавdownloadImage принятьindexPathпозвонитtableView:cellForRowAtIndexPath снова и вызвать бесконечный цикл. Похоже, мне нужно использовать некоторую хеш-таблицу, чтобы запомнить, есть ли изображение в хеш-таблице: если нет, вызовитеdownloadImage, и если в хеш-таблице, просто используйте его, чтобы не было бесконечного цикла.

Но есть ли простой способ заставить изображение появляться? Установка изображения заполнителя работает, но что, если мы не будем - каким механизмом заполнитель вызывает обновление изображения?

Ответы на вопрос(2)

Ваш ответ на вопрос