我在一个json文件中存储了一些用户凭据(电子邮件,密码,昵称)。当我在模拟器上打开应用程序并创建多个测试帐户时,所有操作都很完美。
import Foundation
var users: [UserCredentials] = []
func save (email: String, password: String, nickname: String) {
let newUsers = UserCredentials(email: email, password: password, nickname: nickname)
users.append(newUsers)
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
do {
let data = try encoder.encode(users)
let url = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent("users.json")
print(url.path)
try data.write(to: url)
} catch {
print("Error encoding JSON: \(error)")
}
}
当我重置应用程序并输入新的testuser时,这个问题出现了。json文件重置,而不是加载我之前保存的testuser。有没有一种方法,即使我重新启动模拟器,用户仍然保存在一个文件中?
复位前:
```JSON
[
{
"email" : "beforereset@yahoo.com",
"nickname" : "beforereset12",
"password" : "test1234A"
},
{
"email" : "beforereset1@yahoo.com",
"nickname" : "beforereset123",
"password" : "test1234A"
}
]
```
复位后:
```JSON
[
{
"email" : "afterreset@yahoo.com",
"nickname" : "afterreset12",
"password" : "1234testA"
}
]
重置前的邮件在哪里?
1条答案
按热度按时间new9mtju1#
这条线
...删除现有文件的内容并替换它们。因此每次
save
运行时,文件以前的内容都会丢失。(当然,除非您在保存之前将这些内容从文件读入users
。但是您向我们展示的代码都没有这样做,所以我不得不得出结论,您根本没有这样做。)重置前的邮件在哪里?
不见了你把它们删了。