我正在尝试在我的应用程序中使用 tableview 显示图像和文本,对于延迟图像下载,我使用 NSBlockOperation 和 NSOPerationQueue 进行图像下载。这样所有的图像请求都将被添加到队列中,并同时启动图像下载。如果您等待几分钟下载所有图像,则在登陆该页面时工作正常。如果一进入此屏幕并返回上一个屏幕,应用程序就会崩溃。我可以理解问题是屏幕不再存在。帮我!我将如何解决这个问题?
感谢你的帮助!!
斯里兰卡
我正在尝试在我的应用程序中使用 tableview 显示图像和文本,对于延迟图像下载,我使用 NSBlockOperation 和 NSOPerationQueue 进行图像下载。这样所有的图像请求都将被添加到队列中,并同时启动图像下载。如果您等待几分钟下载所有图像,则在登陆该页面时工作正常。如果一进入此屏幕并返回上一个屏幕,应用程序就会崩溃。我可以理解问题是屏幕不再存在。帮我!我将如何解决这个问题?
感谢你的帮助!!
斯里兰卡
根据 Apple 的建议,请参阅此内容以进行延迟图像加载
http://developer.apple.com/library/ios/#samplecode/LazyTableImages/Introduction/Intro.html
解决方案是使用这个库,不需要你设置下载它,库自己处理 - SDWebImage
您只需要到#import <SDWebImage/UIImageView+WebCache.h>
您的项目,您还可以在下载图像时使用以下代码定义占位符:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier;
CustomCell *cell = [tableview dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
MyObject *object = (MyObject *)[self.list.array objectAtIndex:indexPath.row];
[cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
placeholderImage:[UIImage imageNamed:@"placeholder.png"]];
return cell;
}
它还缓存下载的图像并为您提供出色的性能。