我的应用程序中有一个UIImages
使用特定颜色构建的方法。由于很可能会多次创建相同颜色的图像,因此我想缓存它UIImage
,然后在需要该特定颜色时使用缓存版本而不是构建新版本。
这不是缓存来自网络的远程图像,这些是本地创建的图像。
最好的方法是什么?从磁盘或只是将UIImage
对象保存到NSDictionary
? 怎么样NSCache
?
** 我不希望为此使用库。寻找一个简单的解决方案。
我的应用程序中有一个UIImages
使用特定颜色构建的方法。由于很可能会多次创建相同颜色的图像,因此我想缓存它UIImage
,然后在需要该特定颜色时使用缓存版本而不是构建新版本。
这不是缓存来自网络的远程图像,这些是本地创建的图像。
最好的方法是什么?从磁盘或只是将UIImage
对象保存到NSDictionary
? 怎么样NSCache
?
** 我不希望为此使用库。寻找一个简单的解决方案。
这取决于您拥有多少张图片,以及每张图片的使用频率和并发度。
如果您有一组经常使用的图像,那么这NSDictionary
是一个不错的选择,因为它将所有图像保存在内存中。如果确实收到内存警告,您可以随时删除所有图像,然后在需要时重新生成它们。
当您在代码中生成图像时,似乎缓存到磁盘不会那么有用,但这取决于图像的复杂程度。再次NSDictionary
可以用于内存缓存,然后如果字典中没有任何内容,则失败到磁盘,然后如果所有其他都失败则重新创建。
该NSCache
路由为您提供了一些多线程优势(如果您使用它们),但通常与该NSDictionary
路由相似。由于内存管理是为您处理的,因此您的控制权要少一些,因此缓存可能会比您明确管理它时更频繁地决定销毁您的某些图像。
在任何情况下,您只需要在当前代码之上添加几行代码。