代码之家  ›  专栏  ›  技术社区  ›  kubi

UIImage如何在内存不足的情况下工作?

  •  3
  • kubi  · 技术社区  · 15 年前

    UIImage documentation :

    有人知道这是怎么回事吗?看起来这个过程是完全透明的,并且将在后台进行,没有我的输入,但是我找不到任何确定的文档。

    第二,当我没有加载映像时,是否会进行数据清除(我正在从UIImagePicker获取图像)。

    情况是这样的:我正在和 UIImagePickerController 然后立即把这张照片发给一个新的 UIViewController 用于显示。将原始图像发送到新的控制器会使我的应用程序崩溃,大约有30%的时间会出现内存警告。调整图像的大小需要一些时间,如果有第三种选择的话,我宁愿不花这些时间。

    2 回复  |  直到 15 年前
        1
  •  3
  •   kubi    15 年前

    我想这就是答案。在文档中 initWithContentsOfFile:

    此方法将图像数据加载到内存中,并将其标记为可清除。如果清除数据并需要重新加载,则图像对象将从指定路径再次加载该数据。

    UIImage 提到清除,所以从文件初始化新图像似乎是获得这种低内存行为的唯一方法。

        2
  •  0
  •   Alfons    15 年前

    [NSData dataWithContentsOfMappedFile:]
    

    调整大小。不过,使用文件作为中间文件相当慢。