码迷,mamicode.com
首页 > 移动开发 > 详细

iOS 图片加载导致内存警告

时间:2016-07-19 17:02:26      阅读:617      评论:0      收藏:0      [点我收藏+]

标签:

虽然UITableView和UICollectionView都有cell复用机制,但是如果利用SDWebImage加载的图片本身过大且cell复用池中的个数比较多(cell的Size越小,复用池中的cell就越多),

就容易收到内存溢出的警告!控制台会打印:Received memory warning.
?
解决办法:
在 didReceiveMemoryWarning方法中释放SDImage的缓存即可!
Objective-C:
- (void)didReceiveMemoryWarning {
    [superdidReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
    [[SDWebImageManagersharedManager] cancelAll];
    [[SDImageCachesharedImageCache] clearDisk];
}


如果加载的是项目本地的大图导致的内存溢出,解决办法如下:
建议使用该方法获取图片 - 但是不会自动匹配@2x @3x等
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"xds" ofType:@"png"];
UIImage *image = [[UIImage alloc] initWithContentsOfFile:imagePath];
 
而不要使用下面的方法,图片过大容易造成内存溢出
UIImage *image = [UIImage imageNamed:@"xds.png"];

iOS 图片加载导致内存警告

标签:

原文地址:http://www.cnblogs.com/yujidewu/p/5685431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!