我正在使用一个服务器,该服务器使用以下报头进行响应:
Cache-Control: no-cache
last-modified: Mon, 17 Dec 2018 14:47:19 GMT
以下代码:
let myTask = URLSession.shared.dataTask(request: myRequest, completionHandler: { ... })
myTask.resume()
正确发送
If-Modified-Since
标题。但当我这么做的时候:
URLCache.shared.cachedResponse(for: myRequest)
我得到一个
nil
结果,但是:URLCache.shared.getCachedResponse(for: myTask, completionHandler: { ... })
我在
nil
中得到一个非-completionHandler
结果。我原以为两人都能给我同样的结果。有人能给我解释一下吗?
最佳答案
这将检查本地缓存响应。
if let request = dataRequest.request {
if (URLCache.shared.cachedResponse(for: request) != nil) {
URLCache.shared.removeCachedResponse(for: request)
}
}
你也可以按照苹果的定义来检查。
关于swift - URLCache.cachedResponse(for :)和URLCache.getCachedResponse(for:completionHandler :)有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53913600/