问题描述
我有这个结构
//GLOBAL STRUCT USER
struct User: Codable{
var info: UserInfo?
}
//MARK:-USER INFO
struct UserInfo: Codable{
var companyName: String?
var companyAddress: String?
var companyCity: String?
var companyCap: String?
var companyTelephone: String?
var companyFax: String?
var companyMobile: String?
var companyWeb: String?
var companyEmail: String?
var companyVat: String?
var companySDI: String?
var companyPEC: String?
var companyLogo: Data?
}
我用这个来保存和读取数据:
struct LocalData{
static var userDatas: User {
get {
guard let data = UserDefaults.standard.data(forKey: #function) else {
return User(info: UserInfo(companyName: "",companyAddress: "",companyCity: "",companyCap: "",companyTelephone: "",companyFax: "",companyMobile: "",companyWeb: "",companyEmail: "",companyVat: "",companySDI: "",companyPEC: "",companyLogo: Data()))
}
do {
let datas = try JSONDecoder().decode(User.self,from: data)
return datas
} catch {
print(error)
}
return User(info: UserInfo(companyName: "",companyLogo: Data()))
}
set{
guard let data = try? JSONEncoder().encode(newValue) else { return }
UserDefaults.standard.set(data,forKey: #function)
}
}
}
如果我存储任何数据,例如:
LocalData.userDatas.info?.companyAddress = "TEST"
当我重新启动应用程序(不是从后台,而是关闭并重新打开)时,如果我在“viewWillAppear”中放置一个中断并写入控制台
po LocalData.userDatas
LocalData.userDatas 中的所有数据都为零
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)