在我的应用程序中,我正在异步加载 UITableViewCells 的图像,如下所示:
-(void) loadImage:(NSString *)urlString cell:(UITableViewCell *)cell {
UIImageView *iv = cell.imageView;
UIImage *image = [imageCache objectForKey:urlString];
if(!image) {
NSURL *url = [NSURL URLWithString:urlString];
image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]];
if(image) {
[imageCache setObject:image forKey:urlString];
}
}
dispatch_async(dispatch_get_main_queue(), ^{
iv.image = image;
[cell addSubview:iv];
});
}
在所有图像完成加载之前刷新 tableview 时,会抛出异常,iv.image = image;
因为 iv 已被释放。确保我从不尝试为已释放单元格设置图像的最佳方法是什么?重新加载 tableview 时,是否有某种方法可以杀死任何挥之不去的异步加载?