#swift #xcode #nsuserdefaults #codable
#swift #xcode #nsuserdefaults #кодируемый
Вопрос:
У меня есть эта структура
//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: "", companyAddress: "", companyCity: "", companyCap: "", companyTelephone: "", companyFax: "", companyMobile: "", companyWeb: "", companyEmail: "", companyVat: "", companySDI: "", companyPEC: "", 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 равны нулю
Комментарии:
1. Не могли бы вы предоставить более подробную информацию? Есть некоторые вещи, которые не имеют особого смысла …
LocalData.userDatas.companyAddress = "TEST"
не должно бытьLocalData.userDatas.info.companyAddress = "TEST"
? и что этоuserGroup
? Это не ясно из кода, который вы разделили здесь.2. Извините, я допустил ошибку. Я отредактировал свой вопрос