【发布时间】:2013-04-17 02:26:53
【问题描述】:
我正在尝试使用 UIImages 数组在屏幕上显示大量图像。目前我将每个图像添加到 NSMutableArray 中,然后在需要时访问它们,但是随着图像数量的增加,应用程序最终会崩溃。
我尝试使用 Instruments 来计算内存分配,但似乎一旦内存达到 20MB 左右,应用程序就会崩溃。有没有办法解决这个问题?或者当我这样做时有什么方法可以尽可能地节省内存?即使您对此没有答案,有没有人遇到过类似的问题?如果是这样,您是如何妥协/解决的?
顺便说一句,我没有想到存储到文件(或核心数据)和从文件(或核心数据)中检索的选项,因为该应用程序需要快速使用图像,而我的印象是写入/读取核心数据或文件与使用内存时相比,iOS 上的速度较慢(如果我错了,请纠正我)
【问题讨论】:
-
虽然我不熟悉 xcode,但通常程序解决内存不足的方法是将其分页到磁盘(但这会减慢程序的速度)。除此之外,您还必须更改编译设置或程序设置。
-
感谢您指出这一点。这个应用程序需要快速访问图像,所以我没有考虑将存储到文件/核心数据作为选项,只是更新了问题以反映这一点
-
虽然我不能回答你关于它为什么会崩溃的问题(因为你没有发布代码)我可以告诉你,我认为将所有图像存储在一个数组中的设计不是一个好主意.您有什么理由需要始终保持分配的每个图像空间?存储你的图像,并在你去的时候把它们捡起来,完成后把它们放回去(dealloc)。读取图像的访问时间很可能不会对应用速度造成损害。
标签: iphone ios xcode uiimage nsarray