Существует tableView
. Он берет данные из массива (cellMap
). В viewDidLoad
данные добавляются в массив.Загрузить изображения в фоновом режиме
[self.cellMap addObject:[CellModel initWithTitle:title
price:price
image:getProductImageByImgURL:url
];
В методе cellForRowAtIndexPath
данные берутся из массива:
CellModel *model = self.cellMap[indexPath.row];
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:configurator.identifier forIndexPath:indexPath];
cell.title = model.title;
cell.price = model.price;
cell.image = model.image;
return cell;
Метод для загрузки изображения в фоновом режиме:
- (UIImage *)getProductImageByImgURL:(NSString *)url {
__weak typeof(self)weakSelf = self;
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
__strong typeof(self)strongSelf = weakSelf;
strongSelf.productImage = [UIImage loadImage:url];
});
return self.productImage;
}
Где self.productImage
является @property (strong, nonatomic) UIImage *productImage;
Результат - все ячейки имеют последнее загруженное изображение. В чем проблема?
Не работает .. 8 ( – Gikas