xsc*_*der 1 database json ios swift nsurlsessiondatatask
我有一个简单的应用程序,我以这种方式从存储在我自己的服务器中的 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()
}
Run Code Online (Sandbox Code Playgroud)
这是我的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"]
}
]
Run Code Online (Sandbox Code Playgroud)
问题是,如果我手动编辑我的db.json文件,假设我更改"number":123,为"number":5555,保存并在服务器中再次上传它并再次运行我的应用程序,控制台日志会显示与上面相同的 JSON 数据,就像我没有更改任何内容一样。
我尝试终止该应用程序并使用 Xcode 再次运行它 2-3 次,但没有成功,我获取更新的 JSON 文件数据的唯一方法是删除该应用程序并通过 Xcode 再次安装它。
有没有办法始终获取更新的 JSON 数据URLSessionDataTask?
谢谢。
这是由于URLSession缓存了来自服务器的数据,这通常是在来自服务器的 json 文件的标头中发送的。
如果您无法在服务器端更改任何内容,那么您可以使用此处.ephemeral的苹果文档
使用此代码
let configuration = URLSessionConfiguration.ephemeral
let session = URLSession(configuration: configuration)
Run Code Online (Sandbox Code Playgroud)
.ephemeral用于仅存储在 RAM 中的数据,不会将任何内容存储在磁盘上
| 归档时间: |
|
| 查看次数: |
2074 次 |
| 最近记录: |