看来如果我打电话:
setImageWithURLRequest:(NSURLRequest *)urlRequest placeholderImage:(UIImage *)placeholderImage success:(void (^)(NSURLRequest *request,NSHTTPURLResponse *response,UIImage *image))success failure:(void (^)(NSURLRequest *request,NSError *error))failure
无论在HTTP响应标头中设置任何高速缓存策略,并且随着对同一个URL的请求,它们将保留在那里,并且从那里获取,无论年龄如何,所得到的映像将被放入AFNetworking的AFImageCache中.
是准确吗?
强制忽略缓存的唯一办法是在请求中设置NSURLRequestReloadIgnoringCacheData或NSURLRequestReloadIgnoringLocalAndRemoteCacheData(通过AFNetworking获得重新缓存的方式,这样一来,强制它刷新它的缓存).
现在,确定如果AFImageCache没有返回任何命中,那么AFNetworking将(我想)只有一个请求,使用苹果公司的默认NSURLCache,这在理论上确实遵循http缓存头.但这只是一个请求,因为AFNetworking然后将结果抛出到其自己的永久的非HTTP感知缓存中.
让我知道如果我有这个错误或错过任何东西.
解决方法
据AFNetworking的开发人员Matt说,解决方案是通过将共享映像缓存设置为符合AFImageCache协议的另一个类来覆盖该行为.
https://github.com/AFNetworking/AFNetworking/issues/2731