如何更新本地 JSON 文件 Swift ios 13



我有一个本地json文件,可以按如下方式阅读我所做的:

在此处输入图像描述

func readJson() {
if let path = Bundle.main.path(forResource: "text", ofType: "json") {
do {
let data = try Data(contentsOf: URL(fileURLWithPath: path), options: .mappedIfSafe)
let decoder = JSONDecoder()
let model = try decoder.decode(Textos.self, from: data)
print("model", model)
} catch {
print("error file")
}
} else {
print("error")
}
}

读取功能工作正常,但是当我想更新文件时,它不会更新。

func saveJson(response: Textos) {
do {
let jsonEncoder = JSONEncoder()
let jsonData = try jsonEncoder.encode(response)            //all fine with jsonData here
let json = String(data: jsonData, encoding: String.Encoding.utf8)
let data = Data(json!.utf8)
if let path = Bundle.main.path(forResource: "text", ofType: "json") {
do {
try? data.write(to: URL(fileURLWithPath: path)) **//not Working**
readJson()
}
}
} catch {
print(error)
}
}

saveJson 函数在模拟器中运行良好,但当我使用设备对其进行测试时,它不起作用。

简短回答:

您将永远无法保存。

let path = Bundle.main.path(forResource: "text", ofType: "json")

该文件位于应用程序捆绑包中。访问权限是只读的。

可以保存到文档或缓存文件夹。

let documentPath = NSSearchPathForDirectoriesInDomains(FileManager.SearchPathDirectory.documentDirectory, FileManager.SearchPathDomainMask.userDomainMask, true)

(示例如何请求用户文档文件夹的路径。此文件夹是每个应用程序沙箱的。

相关内容

  • 没有找到相关文章

最新更新