【发布时间】:2016-09-30 14:34:57
【问题描述】:
我正在尝试找出是否可以使用Alamofireimage 强制将图像保存在磁盘上。查看源代码,我无法找到实际将图像保存到磁盘的位置。有人知道吗?
【问题讨论】:
-
它依赖于使用
NSURLCache的NSURLSession,它透明地缓存到内存和磁盘(取决于(a)正在下载的项目大小(项目大于总缓存的5%)大小不被缓存);和(b)响应的 HTTP 标头)。 -
感谢您的回复。这也是我的怀疑,但是我在应用启动期间创建了一个自定义的 NSURLCache 并调用了 setSharedCache,但是当使用 Alamofireimage 保存图像时,没有调用自定义 NSURLCache 的任何函数。
-
您确定您的图像完全被缓存到持久存储吗?根据图像的标题或大小,它可能不会被缓存。我会先检查一下。我所知道的是,我曾经创建了一个 AFNetworking 问题(来自同一作者)提供集成持久存储缓存,他拒绝了这个提议并继续说他认为应用程序不应该缓存自己,而是依赖@ 987654324@ 行为。 (在这一点上我实际上不同意他的观点......一个应用程序应该缓存它想要的任何东西,但这是他的图书馆,他可以做他想做的事。)
-
FWIW,我看了一眼源码,发现他实现了自己的内存图像缓存(有趣的是它既不是基于
NSURLCache也不是基于NSCache,但我没有' 看不到任何持久存储缓存(NSURLSession/NSURLCache透明提供的缓存除外。 -
我在下载图像之前使用了这个:mutableURLRequest.cachePolicy = NSURLRequestCachePolicy.ReturnCacheDataElseLoad,我怀疑它并没有真正起作用。关于更好的 Alamofireimage 替代品的任何建议?
标签: ios swift image-caching alamofireimage diskcache