Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 为什么在屏幕上绘制图像之前不会出现内存不足的问题?_Iphone_Memory Leaks_Drawing_Uiimage_Low Memory - Fatal编程技术网

Iphone 为什么在屏幕上绘制图像之前不会出现内存不足的问题?

Iphone 为什么在屏幕上绘制图像之前不会出现内存不足的问题?,iphone,memory-leaks,drawing,uiimage,low-memory,Iphone,Memory Leaks,Drawing,Uiimage,Low Memory,我能够将200多个UIImage对象加载到NSMutableDictionary中,而不会出现任何内存警告问题 当我开始在屏幕上显示它们时(大约显示10-20幅图像之后),我会收到内存不足的警告,并最终崩溃 任何时候都只显示大约8幅图像 在屏幕上实际绘制UIImage需要额外的内存吗 没有出现内存泄漏,我已经多次检查代码是否存在泄漏。表示拥有UIImage并不一定意味着图像实际存储在内存中,因为它可以从图像缓存中清除。但它确实说,如果你试图画它,它会被拉回到记忆中。可能它在警告您内存不足之前就开

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

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

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

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


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

表示拥有
UIImage
并不一定意味着图像实际存储在内存中,因为它可以从图像缓存中清除。但它确实说,如果你试图画它,它会被拉回到记忆中。可能它在警告您内存不足之前就开始从其映像缓存中清除。这就解释了你所看到的一切。

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

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

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

谢谢。我想知道UIImage对象的内部数据清除得有多活跃。这看起来像是我的图像被从屏幕上删除,将被清除内部,即使我可能会得到内存警告,我最终不会崩溃。谢谢。我想知道UIImage对象的内部数据清除得有多活跃。这看起来像是我的图像被从屏幕上删除,将被清除内部,即使我可能会得到内存警告,我最终不会崩溃。