有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;
结果 - 所有单元格都有最后加载的图像。有什么问题?
答案 0 :(得分:0)
我认为你的问题是由此产生的,
strongSelf.productImage = [UIImage loadImage:url];
您可以尝试使用临时变量。制作它,
UIImage * tempImage = [UIImage loadImage:url];