gpt4 book ai didi

ios - NSURLSession.sharedSession 在运行时显示旧数据?

转载 作者:可可西里 更新时间:2023-11-01 01:39:21 24 4
gpt4 key购买 nike

我遇到了一个非常奇怪的问题。

我正在像这样使用 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 端点删除整个数组,则更改根本不会反射(reflect)在 jsonResult 属性中。曾经。就像数据被缓存一样。

我使用各种不同的程序来验证后端的更改是否已完成,但应用程序不会重新加载新数据。

如果我删除应用程序,请再次运行此 session.DataTaskWithURL...它会提取当前服务器信息。

是否有我不理解的自动行为,如果是,我该如何阻止它缓存数据?

最佳答案

您是否清除了应用程序的缓存,因为 session 将其数据存储在 cookie 中,如果他再次获得相同的 URL,那么它会显示 cookie 数据,这就是您获取旧数据的原因。因此,如果您清除缓存,那么您将始终获得存储在服务器上的最新数据。

let request = NSURLRequest(URL: url, cachePolicy:
NSURLRequestCachePolicy.ReloadIgnoringLocalAndRemoteCacheData,
timeoutInterval: 10.0)

关于ios - NSURLSession.sharedSession 在运行时显示旧数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31821596/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com