Ошибки пользователя всегда возвращают ноль

#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. Извините, я допустил ошибку. Я отредактировал свой вопрос