UserDefaults сбивает с толку данные - PullRequest
0 голосов
/ 02 октября 2018

в моем коде, когда пользователь входит в приложение, я даю ему / ей токен и сохраняю его с помощью UserDefaults, а позже где-нибудь еще в приложении пользователь может установить адрес в качестве основного, а я сохраню его с помощью UserDefaults.когда я делаю это сначала, он удаляет токен, который я сохранил с пользовательским значением по умолчанию в constantKey.token, а затем помещает «65» в адрес constant.address!хотя адрес не "65"

UserDefaults.standard.set(self.Main[indexPath.row].AddressLine, forKey: constantAddress.addressLine)

////

UserDefaults.standard.set(self.Main[indexPath.row].ProvinceName, forKey: ConstantsKey.stateName)
UserDefaults.standard.set(self.Main[indexPath.row].ProvinceId, forKey: constantAddress.stateId)
UserDefaults.standard.set(self.Main[indexPath.row].CityName, forKey: constantAddress.cityName)
UserDefaults.standard.set(self.Main[indexPath.row].CityId, forKey: constantAddress.cityId)
UserDefaults.standard.set(self.Main[indexPath.row].AddressLine, forKey: constantAddress.addressLine)
UserDefaults.standard.set(self.Main[indexPath.row].PostalCode, forKey: constantAddress.postalCode)
UserDefaults.standard.set(self.Main[indexPath.row].Tel, forKey: constantAddress.telephone)
UserDefaults.standard.set(self.Main[indexPath.row].Mobile, forKey: constantAddress.mobile)
UserDefaults.standard.set(self.Main[indexPath.row].Id, forKey: constantAddress.Id)



class constantAddress {
    static var Id = ""
    static var stateName = ""
    static var stateId = "0"
    static var cityName = ""
    static var cityId = "0"
    static var addressLine = ""
    static var postalCode = ""
    static var telephone = ""
    static var mobile = ""
}

Он не сохраняет значение элемента в constantAddress

при получении данныхот userdefualts:

StateLbl.text = UserDefaults.standard.string(forKey: constantAddress.stateName)
CityLbl.text = UserDefaults.standard.string(forKey: constantAddress.cityName)
AddressLbl.text = UserDefaults.standard.string(forKey: constantAddress.addressLine)
PostalCodeLbl.text = UserDefaults.standard.string(forKey: constantAddress.postalCode)
TelLbl.text = UserDefaults.standard.string(forKey: constantAddress.telephone)
MobileLbl.text = UserDefaults.standard.string(forKey: constantAddress.mobile)

1 Ответ

0 голосов
/ 02 октября 2018

Вы используете разные ключи для установки и получения от UserDefaults

UserDefaults.standard.set(self.Main[indexPath.row].ProvinceName, forKey: ConstantsKey.stateName)

использует ConstantsKey.stateName

StateLbl.text = UserDefaults.standard.string(forKey: constantAddress.stateName)

использует constantAddress.stateName

Предполагаячто ConstantsKey.stateName имеет строковое значение, то, что вы должны сказать, это ...

StateLbl.text = UserDefaults.standard.string(forKey: ConstantsKey.stateName)

Пожалуйста, внимательно прочитайте документацию по UserDefaults ... https://developer.apple.com/documentation/foundation/userdefaults

...