iOS-OC-tableview SDWebImage加载多张图片内存警告(received memory warning)

iOS开发 专栏收录该内容
104 篇文章 2 订阅

我们在做类似于朋友圈的列表的时候,我们在每个cell上加载多张图片的时候,我们快速的滚动列表,会收到内存警告,并且会出现闪退的状况;

我做了下面的操作解决了问题;

1.加载小的缩略图;

现在很多公司的图片服务器选择第三方的,比如阿里云,七牛等等,他们都有自己方法来获取缩略图,当然你们公司如果有自己的服务器,也可以自己做缩略图;

例如,以七牛为例

原图URL:http://7xpx8n.com1.z0.glb.clouddn.com/media_album_45666666_2016_05_24_14_15_06_144_8123.jpg

缩略图URL:http://7xpx8n.com1.z0.glb.clouddn.com/media_album_45666666_2016_05_24_14_15_06_144_8123.jpg?imageView2/1/w/200/h/200

2.在用户正在进行用户操作的时候,SDWebImage停止下载图片

//SDWebImageRetryFailed :下载失败后,会重新下载
//SDWebImageLowPriority :在用户正在进行用户操作的时候,SDWebImage停止下载图片
SDWebImageOptions options = SDWebImageRetryFailed | SDWebImageLowPriority;
NSString *uelStr = [NSString stringWithFormat:@"%@?imageView2/1/w/%.0f/h/%.0f",dict[@"url"],imageWidth,imageWidth];
[imageview sd_setImageWithURL:[NSURL URLWithString:uelStr] placeholderImage:[UIImage imageNamed:@"ZH_默认图片.jpg"] options:options completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, NSURL *imageURL) {
                imageview.contentMode = UIViewContentModeScaleAspectFill;
            }];</span>

3.内存处理,我们在收到内存警告的时候,取消下载,清除缓存

AppDelegate里面写

#pragma mark - 收到内存警告
- (void)applicationDidReceiveMemoryWarning:(UIApplication *)application{
    NSLog(@"内存警告了⚠️⚠️⚠️⚠️⚠️⚠️⚠️");
    SDWebImageManager *mgr = [SDWebImageManager sharedManager];
    [mgr cancelAll];
    [mgr.imageCache clearMemory];
}
</span>




展开阅读全文
  • 2
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

相关推荐
©️2020 CSDN 皮肤主题: 成长之路 设计师:Amelia_0503 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值