uitableview - 当需要下载大量图像时如何处理内存?

标签 uitableview memory-management afnetworking

我创建了一个应用程序,用户可以在其中上传图像,并且还可以查看其他用户上传的所有图像。我已经集成了分页代码并一次下载 10 张图像并将它们显示在 UITableView 上。我使用 AFNetworking 来完成此任务,即将图像保存在缓存中。问题是,当用户不断下载图像并且计数达到大约 300 张图像时,应用程序会因为设备内存不足而崩溃。我正在寻找这个问题的最佳解决方案。我的想法是一次在缓存中保留 50 张图像,当用户下载较新的图像时,旧的图像将从缓存中删除。另请告诉我是否可以使用 AFNetworking 来完成此操作。

最佳答案

您应该使用 SDWebImage 而不是下载它将缓存的图像,并且您也可以自定义该缓存选项。

我使用这个 SDWebImage 在 UICollectionview 中缓存 150 多个图像,在 UITableview 中缓存相同的图像,其工作完美。

一开始我们需要添加一个占位符,然后它就会一一出现。

实现

1.取出SDWebImage代码 SDWebImage

2.将头文件导入到您的 View Controller 中

#import <SDWebImage/UIImageView+WebCache.h>

3.然后在cellforrowindex()方法中添加一行代码。我会给你示例代码快照

 // Here we use the new provided setImageWithURL: method to load the web image
    [cell.imageView setImageWithURL:[NSURL URLWithString:@"http://www.domain.com/path/to/image.jpg"]
                   placeholderImage:[UIImage imageNamed:@"placeholder.png"]]; 

关于uitableview - 当需要下载大量图像时如何处理内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19903324/

相关文章:

php - 我怎样才能找出我所有的内存在 PHP 中的位置?

ios - AFNetworking如何发送一串post请求?

ios - 在 Swift 中使用 Firebase 获取值属性

ios - NSNotification 未调用

ios - TableViewCell 更改框架中的删除按钮

Linux free 显示高内存使用率,但 top 没有

ios - 从自定义 tableView 单元格文本字段中获取数据

c++ - 为什么我在删除 char* 时遇到内存异常

ssl - RestKit 0.20.3 证书初始化不完整

ios - AFNetworking XMLResponse 主体是 HTML 编码的,无法解析