【问题标题】:Caching in AFNetworking+UIImageView doesn't respect any http cache policy? (hopefully I'm wrong)AFNetworking+UIImageView 中的缓存不遵守任何 http 缓存策略? (希望我错了)
【发布时间】:2015-07-25 22:34:43
【问题描述】:

如果我打电话给:

setImageWithURLRequest:(NSURLRequest *)urlRequest
              placeholderImage:(UIImage *)placeholderImage
                       success:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image))success
                       failure:(void (^)(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error))failure

生成的图像将被放入 AFNetworking 的 AFImageCache 中,而不管 HTTP 响应标头中设置的任何缓存策略,并且将保留在那里并从那里获取,无论年龄如何,在对同一 URL 的后续请求时。

准确吗?

强制它忽略缓存的唯一方法是在请求中设置NSURLRequestReloadIgnoringCacheDataNSURLRequestReloadIgnoringLocalAndRemoteCacheData(顺便说一下,结果图像将被 AFNetworking 重新缓存,所以这是强制它的一种方法刷新它的缓存)。

现在,确定如果 AFImageCache 没有返回任何命中,那么 AFNetworking 将(我认为)对于一个请求,使用 Apple 的默认 NSURLCache,理论上它确实尊重 http 缓存标头。但这只是一个请求,因为 AFNetworking 会将结果扔到它自己的永久、非 http 感知缓存中。

如果我做错了或遗漏了什么,请告诉我。

【问题讨论】:

    标签: ios caching afnetworking


    【解决方案1】:

    根据 AFNetworking 的开发人员 Matt 的说法,解决方案是通过将共享图像缓存设置为另一个符合 AFImageCache 协议的类来覆盖该行为。 https://github.com/AFNetworking/AFNetworking/issues/2731

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-09-10
      • 2016-05-19
      • 2010-10-06
      • 1970-01-01
      • 1970-01-01
      • 2012-09-05
      • 2020-08-03
      相关资源
      最近更新 更多