我能够在没有任何备忘录警告问题的情况下将200多个UIIMAGE对象加载到NSMutabledictional中。

当我开始在屏幕上显示它们(大约显示10-20张图像之后)时,我会收到低的内存警告和最终的崩溃。

任何人都只显示大约8张图像。

在屏幕上实际绘制UIIMAGE是否需要其他内存?

没有显示内存泄漏,我已经回顾了很多次泄漏的代码。

有帮助吗?

解决方案

文档 说有一个 UIImage 并不一定意味着图像实际上存储在内存中,因为它可以从图像缓存中清除。但是它确实说,如果您尝试绘制它,它将被拉回记忆。也许在警告您有关低内存状况的警告之前,它开始从其图像缓存清除。这解释了您所看到的一切。

其他提示

它很可能最初创建指向图像的链接,此时实际读取的唯一数据是尺寸和图像类型(简而言之),通常不需要其余数据在屏幕上。显示它时,实际图像数据将从filepath下载并根据其图像类型进行解码,然后将其缓存,因此不必再次下载它,缓存需要大量内存,如果您使用double/triple缓冲离屏幕图需要额外的内存。在加载新图像之前,请尝试处置所有图像数据。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top