碰到这个错误是在用 UIImageView 显示图片的时候。UIImage 用的是 imageNamed 方法。错误原因是打开了太多的文件。应该是太多文件的打开导致了 UIImage 的 cache 被删除使得无法获取缓存了的图片。找了很久也没找到问题,因为 imageNamed 这个方法是会缓存图片的,也就是说不管多少 UIImageView 使用这个图片都不会造成额外的图片开销。

后来经过一番测试,恍然大悟。问题居然不来自 UIImage。原以为是程序中载入了太多的图片造成这个错误,但是测试中发现,只要不使用过多不同的图片是没有问题的。真正的杀手居然是我程序中的音频播放器。我的程序中播放器不断地播放音效,造成了太多文件的打开,从来导致了 UIImage 缓存被回收。

播放器的优化很简单,其实就是不要使用 AVAudioPlayer,而是要使用 AudioServices。

最新文章

  1. pinpoint 安装部署
  2. 【iOS】使用safari对webview进行调试
  3. Redis应用场景(转)
  4. cisco nat
  5. 函数mem_area_alloc
  6. FileSystemWatcher使用方法具体解释
  7. 通过一个正则表达式,让SQL Server数据库的带参sql也支持位置参数语法!
  8. SystemParametersInfo API学习(128个中文参数解释,215个实际值)
  9. [HNOI 2018]游戏
  10. webpack 笔记
  11. openstack之glance基础
  12. Python 循环与定义函数
  13. iOS 静态库代码混淆方案
  14. AndroidManifest中注册application
  15. Docker容器相互访问
  16. 多线程安全问题之Lock显示锁
  17. #001 Emmet的API图片
  18. 【AI in 美团】深度学习在文本领域的应用
  19. 每一个JavaScript开发者应该了解的浮点知识
  20. pyqt二进制和图片的转换

热门文章

  1. apache配置https和http的时候You don't have permission to access / on this server.
  2. linux中用date命令获取昨天、明天或多天前后的日期
  3. 通过HttpWebRequest实现模拟登陆
  4. SqlMapConfig.xml配置文件中的mapper映射器标签
  5. linux下mysql开启远程访问权限及防火墙开放3306端口(mysql开放host访问权限)
  6. PHP实现一维数组转二维数组的方法
  7. 解决 Windows 系统使用 Homestead 运行 Laravel 本地项目响应缓慢问题
  8. Java 设计模式系列(十三)模板方法
  9. css控制两个表格的边线重合
  10. Spring boot——logback.xml 配置详解(二)