вот методология, которую я использую для загрузки изображений в UITableView из удаленного местоположения:
в вашем .h файле объявите изменяемый словарь для хранения изображений:
NSMutableDictionary *images;
инициализировать словарь в -init ... или в -viewDidLoad
images = [[NSMutableDictionary alloc]init];
в .m, tableView:cellForRowAtIndexPath:
, посмотрите, существует ли изображение в вашем словаре для indexPath
UIImage *img = [images objectForKey: indexPath];
если изображение существует, просто установите его.
if (img) cell.imageView.image = img;
если изображение НЕ существует, установите для изображения ячейки временное изображение ...
if (!img) cell.imageView.image = [UIImage imageNamed:@"imageUnavailable.png"];
И добавьте это изображение в свой словарь, чтобы оно не пыталось повторно получить изображение, если вы прокрутите и вернетесь к этому изображению до его загрузки ...
[images setObject:[UIImage imageNamed:@"imageUnvailable.png"] forKey: indexPath];
затем в этом же блоке используйте NSOperationQueue и пользовательскую NSOperation (здесь ссылка - NSOperation and SetImage ), чтобы получить ваше изображение и перезвонить в ваш UITableViewController с этим изображением.
в вашем обратном вызове добавьте ваше изображение в словарь (перезаписывая временное изображение) и вызовите [tableView reloadData]
это даст вам хороший не блокирующий пользовательский опыт.