NSURLCache cachedResponseForRequest 被调用两次

NSURLCache cachedResponseForRequest getting call twice

在我的代码中,我重写了 NSURLCache cachedResponseForRequest 以发送缓存的响应,以防万一已经下载。但由于某种原因,cachedResponseForRequest 被调用了两次。有人知道原因吗?

这是默认行为吗?

我很确定所讨论的方法是出于非常不同的原因从 NSURLSession 堆栈的两个不同部分调用的:

  • 获取缓存响应的日期,以便它可以在 HEAD 请求中提供 headers,询问服务器自那时以来内容是否已被修改。
  • 在服务器发回 304(未修改)状态码后获取缓存响应的实际数据。