0

在我的 iPad 应用程序中,我使用 ALAsset 和以下代码从 Photo Stream 加载 100 张图像:

  ALAsset *asset = [assets objectAtIndex:[sender tag]];
  ALAssetRepresentation *representation = [asset defaultRepresentation];
  UIImage *image = [[UIImage alloc] initWithCGImage:[representation fullScreenImage]
                                                     scale:1.0f
                                               orientation:0];

一切都很完美。但是当我将它作为 JPEG 文件缓存到文件系统中,然后再次使用 加载它们时UIImage *image = [UIImage imageWithContentsOfFile:fullPath],应用程序崩溃并出现内存警告,我可以在分析器中看到它确实使用了大量 RAM。为什么会这样?

4

2 回答 2

1

一样东西,

当您从图库加载图像时,为什么不存储AssetURL, 而不是UIImage; 那应该占用更少的空间并提高速度。

当您需要显示时,也许可以使用缩略图表示?

于 2014-05-30T11:11:40.417 回答
0

好吧,这是我的错。我发现了问题,结果表明无论如何我都有内存问题。ALAsset并且imageWithContentsOfFile工作完全相同。

现在我将尝试找到减小每个图像大小的方法。

于 2014-05-30T16:51:29.710 回答