1

我的应用程序中有一个UIImages使用特定颜色构建的方法。由于很可能会多次创建相同颜色的图像,因此我想缓存它UIImage,然后在需要该特定颜色时使用缓存版本而不是构建新版本。

这不是缓存来自网络的远程图像,这些是本地创建的图像。

最好的方法是什么?从磁盘或只是将UIImage对象保存到NSDictionary? 怎么样NSCache

** 我不希望为此使用库。寻找一个简单的解决方案。

4

1 回答 1

3

这取决于您拥有多少张图片,以及每张图片的使用频率和并发度。

如果您有一组经常使用的图像,那么这NSDictionary是一个不错的选择,因为它将所有图像保存在内存中。如果确实收到内存警告,您可以随时删除所有图像,然后在需要时重新生成它们。

当您在代码中生成图像时,似乎缓存到磁盘不会那么有用,但这取决于图像的复杂程度。再次NSDictionary可以用于内存缓存,然后如果字典中没有任何内容,则失败到磁盘,然后如果所有其他都失败则重新创建。

NSCache路由为您提供了一些多线程优势(如果您使用它们),但通常与该NSDictionary路由相似。由于内存管理是为您处理的,因此您的控制权要少一些,因此缓存可能会比您明确管理它时更频繁地决定销毁您的某些图像。

在任何情况下,您只需要在当前代码之上添加几行代码。

于 2013-05-28T17:20:42.273 回答