gpt4 book ai didi

iOS Swift - URLSessionDataTask 不会在刷新时获取更新的 JSON 数据

转载 作者:行者123 更新时间:2023-11-28 10:03:26 25 4
gpt4 key购买 nike

我有一个简单的应用程序,我以这种方式从存储在我自己的服务器中的 JSON 文件中获取数据 - 我正在使用 SwiftyJSON :

func queryData(_ fileName:String) {
guard let url = URL(string: JSON_PATH + fileName + ".json") else {return} // JSON_PATH + fileName + ".json" is the complete path to my db.json file (see below)
let task = URLSession.shared.dataTask(with: url) { (data, response, error) in
guard let dataResponse = data, error == nil else {
self.simpleAlert(error!.localizedDescription)
return
}
let jsonData = try! JSON(data: dataResponse)
print("ARRAY: \(jsonData)")
}
task.resume()
}



这是我的 db.json 文件:

[
{
"objID":"GNoW3vszYz",
"string":"First (1) string",
"pointer":["pointer","yN76TF43i8"],
"boolean":true,
"number":123,
"fileURL":"https://example.com/uploads/01.jpg",
"array":["aaa","bbb","ccc"]
},
{
"objID":"yN76TF43lD",
"string":"Second (2) string",
"pointer":["pointer","GNoN3vsz2I"],
"boolean":false,
"number":12.55,
"fileURL":"https://example.com/uploads/02.jpg",
"array":["aaa","eee","fff"]
}
]



问题是,如果我手动编辑我的 db.json 文件,假设我将 "number":123, 更改为 "number":5555 , 将其保存并再次上传到我的服务器并再次运行我的应用程序,控制台日志显示与上面相同的 JSON 数据,就像我什么都没做一样。


我尝试终止该应用程序并使用 Xcode 再次运行它 2-3 次,但没有成功,我可以获得更新的 JSON 文件数据的唯一方法是删除该应用程序并通过以下方式重新安装它Xcode.

有没有办法始终使用 URLSessionDataTask 获取更新的 JSON 数据?
谢谢。

最佳答案

这是由于 URLSession 缓存了来自服务器的数据,这通常在来自服务器的 json 文件的 header 中发送。

如果您不能在服务器端更改任何内容,那么您可以只使用苹果文档中的 .ephemeral here

使用此代码

let configuration = URLSessionConfiguration.ephemeral
let session = URLSession(configuration: configuration)

.ephemeral 用于只存储在 ram 中的数据,不会将任何内容存储在磁盘上

关于iOS Swift - URLSessionDataTask 不会在刷新时获取更新的 JSON 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57285887/

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