【问题标题】:How is Alamofireimage saving the image to disk cache?Alamofireimage 如何将图像保存到磁盘缓存?
【发布时间】:2016-09-30 14:34:57
【问题描述】:

我正在尝试找出是否可以使用Alamofireimage 强制将图像保存在磁盘上。查看源代码,我无法找到实际将图像保存到磁盘的位置。有人知道吗?

【问题讨论】:

  • 它依赖于使用NSURLCacheNSURLSession,它透明地缓存到内存和磁盘(取决于(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


【解决方案1】:

可以将图像请求的响应保存在磁盘上。您可以使用所需的NSURLCache 修改配置来初始化ImageDownloader,并将其设置为 UIImageView.af_sharedImageDownloader。 Here I've posted an example method for that.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-26
    • 2017-03-10
    • 1970-01-01
    • 2017-02-11
    • 2013-02-10
    • 2021-10-13
    • 2014-01-08
    • 2018-10-09
    相关资源
    最近更新 更多