如何解决UserDefaults 错误:执行被中断,原因:EXCBADACCESS代码=1,地址=0x38
嗨,这个功能有问题。 如果我尝试设置和读取数据,我会收到此错误
错误:执行被中断,原因:EXCBADACCESS(代码=1, 地址=0x38)。该过程已留在原处 中断,使用“线程返回-x”返回之前的状态 表达式求值。
尝试在 Playground 中导入此代码以重现问题
import UIKit
//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: String?
}
struct LocalData{
static var userDatas: User?{
get{
guard let datas = UserDefaults.standard.data(forKey: #function) else {
return User(info: UserInfo(companyName: "",companyAddress: "",companyCity: "",companyCap: "",companyTelephone: "",companyFax: "",companyMobile: "",companyWeb: "",companyEmail: "",companyVat: "",companySDI: "",companyPEC: "",companyLogo: ""))
}
do{
let myData = try JSONDecoder().decode(User.self,from: datas)
return myData
}
catch{
print(error)
}
return User(info: UserInfo(companyName: "",companyLogo: ""))
}
set{
guard let mydatas = try? JSONEncoder().encode(newValue) else { return }
print(mydatas)
UserDefaults.standard.setValue(mydatas,forKey: #function)
}
}
}
LocalData.userDatas?.info?.companyAddress = "TEST"
print(LocalData.userDatas?.info)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。