我遇到了非常奇怪的问题。
我正在使用session.DataTaskWithURL:
let task = session.dataTaskWithURL(url!, completionHandler: { data, response, error -> Void in
if (error != nil) {
return completionHandler(nil, error)
} else {
if let jsonResult = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.MutableContainers, error: nil) as? NSDictionary {
if let uDataArray = jsonResult["data"] as? [NSDictionary] {
println(uDataArray)
}
return completionHandler(self.dataArray, nil)
})
task.resume()
除了jsonResult显示旧数据外,一切看起来都很棒。例如,如果我从API端点删除整个数组,则更改不会反映在jsonResult属性中。永远。就像数据被缓存一样。
我使用各种不同的程序来验证后端的更改,但应用程序不会重新加载新数据。
如果我删除了该应用,请再次运行此session.DataTaskWithURL ...它会提取当前服务器信息。
是否有自动行为我不理解,如果有,我如何阻止它缓存数据?
答案 0 :(得分:2)
您是否已清除应用程序的缓存,因为会话将其存储在Cookie中,如果他再次获得相同的URL,则会显示Cookie数据,这就是您获取旧数据的原因。因此,如果清除缓存,则始终会获得存储在服务器上的最新数据。
let request = NSURLRequest(URL: url, cachePolicy:
NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData,
timeoutInterval: 10.0)