• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

iphone - 使用 UIImage 的大 NSArray 时的内存问题

[复制链接]
菜鸟教程小白 发表于 2022-12-13 02:12:53 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我正在尝试使用 UIImages 数组在屏幕上显示大量图像。目前我将每个图像添加到 NSMutableArray 中,然后在需要时访问它们,但是随着图像数量的增加,应用程序最终会崩溃。

我尝试使用 Instruments 来计算内存分配,但似乎一旦内存达到 20MB 左右,应用程序就会崩溃。有没有办法解决这个问题?或者当我这样做时有什么方法可以尽可能地节省内存?即使您对此没有答案,有没有人遇到过类似的问题?如果是这样,您是如何妥协/解决的?

顺便说一句,我没有想到存储到文件(或核心数据)和从文件(或核心数据)中检索的选项,因为该应用程序需要快速使用图像,而我的印象是写入/读取核心数据或文件与使用内存时相比,iOS 上的速度较慢(如果我错了,请纠正我)



Best Answer-推荐答案


是的,如果您将大量图像存储在可变数组中,那么它会占用大量可用内存。您也可以考虑核心数据。但是在运行时从核心数据存储和检索数据时会发生一些缓慢的功能,但它可以安全地防止内存使用。
对于这种情况,我总是推荐并使用以下功能。我将所有图像缓存在文档目录中,并将其 URL(文件位置)路径保存在 coredata(或任何其他数据库)中。现在在演示时,我从存储当前图像、上一个图像和下一个图像中拍摄了 3 张图像。每当我显示当前图像时,用户可以滚动,他可以流畅地看到下一张或上一张图像。如果用户继续下一张图片,那么我会更改这三张图片。当前图像现在将是我的上一个图像,下一个图像将是我当前的图像,我从我的存储位置加载新图像,这将是下一个图像。所以让所有图像都循环播放,我们只使用 3 张图像来处理这个循环。

关于iphone - 使用 UIImage 的大 NSArray 时的内存问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16050393/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap