Iphone 为什么在屏幕上绘制图像之前不会出现内存不足的问题?
我能够将200多个UIImage对象加载到NSMutableDictionary中,而不会出现任何内存警告问题 当我开始在屏幕上显示它们时(大约显示10-20幅图像之后),我会收到内存不足的警告,并最终崩溃 任何时候都只显示大约8幅图像 在屏幕上实际绘制UIImage需要额外的内存吗Iphone 为什么在屏幕上绘制图像之前不会出现内存不足的问题?,iphone,memory-leaks,drawing,uiimage,low-memory,Iphone,Memory Leaks,Drawing,Uiimage,Low Memory,我能够将200多个UIImage对象加载到NSMutableDictionary中,而不会出现任何内存警告问题 当我开始在屏幕上显示它们时(大约显示10-20幅图像之后),我会收到内存不足的警告,并最终崩溃 任何时候都只显示大约8幅图像 在屏幕上实际绘制UIImage需要额外的内存吗 没有出现内存泄漏,我已经多次检查代码是否存在泄漏。表示拥有UIImage并不一定意味着图像实际存储在内存中,因为它可以从图像缓存中清除。但它确实说,如果你试图画它,它会被拉回到记忆中。可能它在警告您内存不足之前就开
没有出现内存泄漏,我已经多次检查代码是否存在泄漏。表示拥有
UIImage
并不一定意味着图像实际存储在内存中,因为它可以从图像缓存中清除。但它确实说,如果你试图画它,它会被拉回到记忆中。可能它在警告您内存不足之前就开始从其映像缓存中清除。这就解释了你所看到的一切。说拥有UIImage
并不一定意味着图像实际上存储在内存中,因为它可以从图像缓存中清除。但它确实说,如果你试图画它,它会被拉回到记忆中。可能它在警告您内存不足之前就开始从其映像缓存中清除。这就解释了你所看到的一切。很可能你最初创建了一个指向图像的链接,此时实际读取的唯一数据是尺寸和图像类型(简而言之),其余数据通常不需要,除非通常从后台进程(即屏幕上显示)请求。显示时,将从文件路径下载实际图像数据,并根据其图像类型进行解码,然后对其进行缓存,这样就不必再次下载,缓存会占用大量内存,如果使用双/三重缓冲,则屏幕外绘图需要额外内存。
在加载新图像之前,请尝试处理所有图像数据。可能是您最初创建了一个指向图像的链接,此时实际读取的唯一数据是尺寸和图像类型(简而言之),其余数据通常不需要,除非通常从后台进程(即屏幕上显示)请求。显示时,将从文件路径下载实际图像数据,并根据其图像类型进行解码,然后对其进行缓存,这样就不必再次下载,缓存会占用大量内存,如果使用双/三重缓冲,则屏幕外绘图需要额外内存。
在加载新图像之前,请尝试处理所有图像数据。谢谢。我想知道UIImage对象的内部数据清除得有多活跃。这看起来像是我的图像被从屏幕上删除,将被清除内部,即使我可能会得到内存警告,我最终不会崩溃。谢谢。我想知道UIImage对象的内部数据清除得有多活跃。这看起来像是我的图像被从屏幕上删除,将被清除内部,即使我可能会得到内存警告,我最终不会崩溃。