先说一下状况, 后台提供的图片太高清了, 每个图片都在2-4MB, iOS上每个页面需要同时下载并展示10-15张.

这个时候, 如果我多滑动collectionView几次, 直接App就崩溃了(reason: 是内存警告, 超出每个App可用的最大内存限制)

解决方法: 经过各种百度, Google以后. 我是这样解决的. 缩小图片的高清度.

// 开辟一条子线程dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
// 因为来回滑动, 都会去重新下载图片, 那么我们下载过的图片, 就直接缓存到本地, 然后下载直接从本地取(肯定比现下快)
NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).lastObject;
[cachePath stringByAppendingPathComponent:@"imageCache"];// 获取图片网址转换的文件名字
NSString *imagePath = [NSString stringWithFormat:@"%@/%d", cachePath, [self.theExhib.worksPic hash]];NSFileManager *fileManager = [NSFileManager defaultManager];NSData *da = nil;// 判断一下图片在本地在不在
if ([fileManager fileExistsAtPath:imagePath]) {// 如果在, 直接就取
da = [NSData dataWithContentsOfFile:imagePath];}
else {// 如果不在, 就重新下载(self.theExhib.worksPic是网址)
da = [NSData dataWithContentsOfURL:[NSURL URLWithString:self.theExhib.worksPic]];// 把图片流写入本地
[da writeToFile:imagePath atomically:YES];
}
// 把NSData流转化成UIImage对象
UIImage *ima = [UIImage imageWithData:da];

// 调用自己的方法imageWithImageSimple scaldToSize: (Size后面填写的你要缩小成的图片分辨率)
ima = [self imageWithImageSimple:ima scaledToSize:CGSizeMake(100, 200)];// 回到主线程刷新UI
dispatch_async(dispatch_get_main_queue(), ^{[self.bacImageV setImage:ima];
});
});- ( UIImage *)imageWithImageSimple:( UIImage *)image scaledToSize:( CGSize )newSize{// Create a graphics image context

UIGraphicsBeginImageContext (newSize);// Tell the old image to draw in this new context, with the desired// new size

[image drawInRect : CGRectMake ( 0 , 0 ,newSize. width ,newSize. height )];// Get the new image from the context

UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext ();// End the context

UIGraphicsEndImageContext ();// Return the new image.return newImage;}

转载于:https://www.cnblogs.com/lidongxu/p/5404700.html

[iOS]图片高清度太高, 导致内存过大Crash相关推荐

  1. GTASA圣安地列斯大量高清贴图包导致游戏崩溃闪退的解决办法

    GTASA圣安地列斯大量高清贴图包导致游戏崩溃闪退的解决办法 记录博文 情况说明 在安装了很多不同的 HD 纹理包之后(例如美化包)&驾驶或飞行了大约10分钟,游戏导致崩溃.不管用啥 stre ...

  2. 想要高清壁纸,高图桌面壁纸网站值得收藏!

    本人是非常喜欢高清度的图片作为壁纸!看起来都很治愈的赶脚! 高图网 www.gaopic.com 壁纸主打4K,正合我意,如果你的显示器也是4K.5K的分辨率, 来这个网站下载壁纸绝对是一个不错的选择 ...

  3. 快捷录播服务器怎么显示时间,半自动高清录播服务器 高清全自动录播系统 方便携带 搭建快捷...

    高清录播服务器对老师的意义: 有助于教师进行教学评估.自我检视和反思,从而改善教师教学方式.提升教师教学水平及教学能力认可度. 为教师自我学习,业务提高.教学能力提高,提供交流学习的平台; 为教师自我 ...

  4. 图片如何高清修复?高清修复图片的方法

    图片如何高清修复?很多时候,在我们日常的拍照过程中,总是会遇到一不小心将照片拍模糊的情况.虽然说现在人们都提倡朦胧美,但是照片太糊毕竟还没那么好看.这里小编就来教大家修复图片的好用方法,希望能对大家编 ...

  5. 前端模块依赖复杂度太高,一团乱麻了怎么办

    大厂技术  高级前端  Node进阶 点击上方 程序员成长指北,关注公众号 回复1,加入高级Node交流群 随着项目规模庞大,文件层级与结构的复杂度越来越高,模块关系混乱,循环依赖,反向依赖行为越来越 ...

  6. 360极速浏览器,关闭“开启DirectWrite高清字体渲染支持”导致内置打印崩溃

    最近升级到13.0.2220.0,发现关闭"开启DirectWrite高清字体渲染支持"功能,会导致内置打印功能出错,打印预览界面显示预览失败,然后页面崩溃,显示RESULT_CO ...

  7. 高清修复太感人!百部高清修复版港片上线,AI增强老剧画质

    企鹅策划的经典港片季,修复百部经典香港电影,是谁的回忆DNA狠狠悸动了!一瞬间让我们回到小时候电视机前的那些岁月,我马上就去看! 据官方介绍,港片季现已上线,百部经典华语港片,高清修复提升感官体验.官 ...

  8. 利用python进行数据分析第二版pdf百度云_参考《利用Python进行数据分析(第二版)》高清中文PDF+高清英文PDF+源代码...

    第2版针对Python 3.6进行全面修订和更新,涵盖新版的pandas.NumPy.IPython和Jupyter,并增加大量实际案例,可以帮助高效解决一系列数据分析问题. 第2版中的主要更新了Py ...

  9. 学习参考《父与子的编程之旅python【第二版】》高清中文版PDF+高清英文版PDF+源代码...

    对于初步接触编程语言的朋友,推荐看一看<父与子的编程之旅第2版>,对于完全编程零基础的很友好! 图文并茂,过多的文字堆垒很容易让人产生厌倦情绪,也更容易让人产生放弃的想法.使用了大量插图, ...

最新文章

  1. 数据连接池的工作机制是什么?
  2. docker删除es数据_Docker的常用命令
  3. 如何有效实现软件的需求管理(6)
  4. summary_1.正念自控法
  5. macpro如何清理磁盘空间_如何正确的清理C盘
  6. 计算机应用领域变化,计算机应用领域与发展阶段.ppt
  7. linux内核安装教程,Linux内核5.9的最重要功能及安装方法
  8. 南师大附中2021高考成绩查询,2021高考倒计时,你有一份师大附中专属回忆录待查收~...
  9. keepalived高可用LVS与Nginx
  10. win10 UEFI引导恢复
  11. java-net-php-python-jspm新开路东总布小学编程类课程教学系统计算机毕业设计程序
  12. 运维团队(OPS)与技术团队有效沟通配合探讨
  13. docker run 挂载卷_Docker容器数据卷-Volume小结
  14. 如何把浏览器中知乎文章导出成PDF
  15. linux动态监控机制
  16. [软件测试]软件测试的原则及软件质量
  17. Go环境配置(MAC)
  18. Matlab获取tif各格点经纬度
  19. java jsf教程_JSF入门教程
  20. 一文梳理CSS必会知识点

热门文章

  1. coreData使用
  2. [WebService] xml WebService学习1
  3. CSS完美兼容IE6/IE7/FF的通用方法
  4. supesite之空间篇
  5. 利用OpenCV的VideoCapture类实现视频读操作
  6. 根据MATLAB的histeq函数改写的运行在OpenCV下的直方图规定化C源码
  7. linux内核网络协议栈--数据包的发送过程(二十一)
  8. ubuntu apt-get彻底卸载软件包
  9. knn的python代码_Python代码实现KNN算法
  10. linux常用命令linux自动挂载WinXP系统下的分区