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

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

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

// 开辟一条子线程
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, ), ^{

// 因为来回滑动, 都会去重新下载图片, 那么我们下载过的图片, 就直接缓存到本地, 然后下载直接从本地取(肯定比现下快)
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(, )];
// 回到主线程刷新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 ( , ,newSize. width ,newSize. height )]; // Get the new image from the context UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext (); // End the context UIGraphicsEndImageContext (); // Return the new image. return newImage; }

[iOS]图片高清度太高, 导致内存过大Crash的更多相关文章

  1. 分享《Python 游戏编程快速上手(第3版)》高清中文版PDF+高清英文版PDF+源代码

    通过编写一个个小巧.有趣的游戏来学习Python,通过实例来解释编程的原理的方式.14个游戏程序和示例,介绍了Python基础知识.数据类型.函数.流程控制.程序调试.流程图设计.字符串操作.列表和字 ...

  2. 《最优化导论第4版》高清中文版PDF+高清英文版PDF+习题题解

    <最优化导论第4版>高清中文版PDF+高清英文版PDF+习题题解 存放在语雀 凸优化 · 语雀

  3. Ubuntu 设置简单密码,复杂度太高

    Ubuntu 中创建的用户密码复杂度很高,如果想设置1234 ,或者与账户名相同的密码时,SystemSetting 中是不可以设置的. 可以通过简单的命令来设置 其中 anyongfei 是账户名 ...

  4. 参考《机器学习实战》高清中文PDF+高清英文PDF+源代码

    机器学习是人工智能研究领域中一个极其重要的研究方向,在现今的大数据时代背景下,捕获数据并从中萃取有价值的信息或模式,成为各行业求生存.谋发展的决定性手段,这使得这一过去为分析师和数学家所专属的研究领域 ...

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

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

  6. 参考《利用Python进行数据分析(第二版)》高清中文PDF+高清英文PDF+源代码

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

  7. 参考学习《Python学习手册(第4版)》高清中文PDF+高清英文PDF+源代码

    看到第38章了,整体感觉解释详细,例子丰富:关于Python语言本身的讲解全面详尽而又循序渐进不断重复,同时详述语言现象背后的机制和原理:除语言本身,还包含编程实践和设计以及高级主题.边看边写代码.不 ...

  8. 学习《R数据科学》高清中文PDF+高清英文PDF+源代码

    学习R有不会的就查工具书<R数据科学>, 工具不是重点,创造价值才是目的.具体到数据科学,表现形式往往是提供解决方案或者做出某种决策.至于使用什么语言,采用什么工具,不本质.用 R 还是 ...

  9. 参考分享《Python深度学习》高清中文版pdf+高清英文版pdf+源代码

    学习深度学习时,我想<Python深度学习>应该是大多数机器学习爱好者必读的书.书最大的优点是框架性,能提供一个"整体视角",在脑中建立一个完整的地图,知道哪些常用哪些 ...

随机推荐

  1. Pi Zero三代版本演化比较

    本文介绍Pi Zero的版本演进. 5美元的Pi Zero一上市即造成轰动! 2015年11月树莓派基金会发表了只有5美元的树莓派计算机:PiZero,且只要购买纸本的第40期MagPi杂志就可以附送 ...

  2. 基于spring框架的apache shiro简单集成

    关于项目的安全保护,我一直想找一个简单配置就能达到目的的方法,自从接触了shiro,这个目标总算达成了,以下结合我使用shiro的经验,谈谈比较轻便地集成该功能. 首先我们先了解一下shiro是什么. ...

  3. 第二十次ScrumMeeting博客

    第二十次ScrumMeeting博客 本次会议于12月11日(一)22时整在3公寓725房间召开,持续20分钟. 与会人员:刘畅.辛德泰.张安澜.赵奕.方科栋. 1. 每个人的工作(有Issue的内容 ...

  4. 《Linux内核分析》第三周学习报告

    <Linux内核分析>第三周学习报告                                    ——构造一个简单的Linux系统MenuOS 姓名:王玮怡  学号:201351 ...

  5. 20135119_涂文斌 实验二 Java面向对象程序设计

    北京电子科技学院(BESTI) 实  验  报  告 课程: Java        班级:1351           姓名:涂文斌          学号:20135119 成绩:         ...

  6. 课堂讨论 alpha版最后总结

    议时间:组队开发最后总结会议   星期一   下午4:30-5:30 会议地点:学院楼自习室 到会人员:唐野野 胡潘华 王永伟 魏孟 会议概要: 1.展示最后开发成果: 2.交流开发过程心得体会: 会 ...

  7. RabbitMQ None of the specified endpoints were reachable

    消息队列部署到服务器的时候,需要新增一个用户,然后一定要设置权限.参考一下 https://www.cnblogs.com/gossip/p/4573056.html

  8. Alpha冲刺第5天

    Alpha第六天 1.团队成员 郑西坤 031602542 (队长) 陈俊杰 031602504 陈顺兴 031602505 张胜男 031602540 廖钰萍 031602323 雷光游 03160 ...

  9. [转帖]MerkleDAG全面解析 一文读懂什么是默克尔有向无环图

    MerkleDAG全面解析 一文读懂什么是默克尔有向无环图 2018-08-16 15:58区块链/技术 MerkleDAG作为IPFS的核心数据结构,它融合了Merkle Tree和DAG的优点,今 ...

  10. Android控件第1类——TextView

    Android提供TextView,它不能被编辑,它的子类EditText可以编辑.TextView有很多子类. 1.EditText,继承自TextView EditText可以编辑. 可以设置in ...