iOS - 优化。缓存图像

时间:2014-01-17 15:46:00

标签: ios caching optimization uiimage

我正在尝试优化包含大量图片和代码的iOS应用程序。我用一些程序缩小了图像的大小,但使用仪器显示应用程序仍然占用70-90mb的高速缓存。 我已经读过按需加载资源(图像)并在不再需要时丢弃它们将是一个很好的解决方案。我该怎么做? 我还有一个问题: 当我们使用时: UIImage * aux = [UIImage imagenamed:@“image.png”];
 在我们写了aux = nil之后;  图像是从缓存中丢弃的吗?

1 个答案:

答案 0 :(得分:0)

一次只能看到其中一些图像吗?编写一个系统,只加载当前可见的图像(也许某些应用程序认为可能很快就会显示)。当您从系统收到内存警告时,请查找过去一段时间内未加载的图像并将其释放。

要回答第二个问题,是的,设置对nil的引用将在您使用ARC(自动引用计数)时释放它,并且如果您设置为nil的引用是对该对象的唯一引用。对象的所有引用必须在它被释放之前消失。

我会查看一些可用的解决方案,例如Path的FastImageCache,看看它们是否符合您的需求。 FastImageCache以类似于Sprite Sheets(由2D游戏使用)的格式在磁盘上存储未压缩的图像,因此可以在需要时快速加载它们。这里的重点是提高滚动性能,所以如果这不是你的问题,这可能不适合这项工作。

你也可以看一下this thread,虽然这是为了缓存网页图片。

您也可以查看The Tumblr Image Cache