1

我能够将 200 多个 UIImage 对象加载到 NSMutableDictionary 中,而不会出现任何内存警告问题。

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

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

在屏幕上实际绘制 UIImage 是否需要额外的内存?

没有出现内存泄漏,并且我已经多次查看代码是否存在泄漏。

4

2 回答 2

1

很可能您最初创建了指向图像的链接,此时实际读取的唯一数据是尺寸和图像类型(简而言之),其余数据通常不需要,直到通常从后台进程请求,即显示在屏幕上。当它显示时,实际的图像数据从文件路径下载并根据其图像类型进行解码,然后将其缓存,因此不必再次下载,如果您使用双/三缓存,缓存会占用大量内存缓冲屏幕外绘图需要额外的内存。在加载新图像之前尝试处理所有图像数据。

于 2010-11-27T18:15:32.407 回答
0

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

于 2010-05-27T00:47:38.557 回答