Я ищу способ сохранить данные в пользовательских настройках по умолчанию на основе условия, а также лучший способ сделать фактическое сохранение, потому что я чувствую, что способ, которым я это делаю, использует слишком много кода. Мой код должен сохранять данные из текстовых полей, если заполнены все, кроме одного. В настоящее время данные сохраняются правильно, когда я открываю и закрываю приложение, когда отсутствует оператор if, но с оператором if он не сохраняет совсем. Вот мой код, смело меняйте его. Любая помощь приветствуется!
override func viewDidAppear(_ animated: Bool) {
super.viewDidAppear(true)
if (billingTextView.text != "" && FirstName.text != "" && LastName.text != "" && Email.text != "" && PhoneNumber.text != "" && Address.text != "" && City.text != "" && PostalCode.text != "" && Country.text != "" && State.text != "" ){
billingTextView.text = UserDefaults.standard.string(forKey: "profileName")
FirstName.text = UserDefaults.standard.string(forKey: "firstName")
LastName.text = UserDefaults.standard.string(forKey: "lastName")
Email.text = UserDefaults.standard.string(forKey: "email")
PhoneNumber.text = UserDefaults.standard.string(forKey: "phoneNumber")
Address.text = UserDefaults.standard.string(forKey: "address")
Address2.text = UserDefaults.standard.string(forKey: "address2")
City.text = UserDefaults.standard.string(forKey: "city") ?? ""
PostalCode.text = UserDefaults.standard.string(forKey: "postalCode")
Country.text = UserDefaults.standard.string(forKey: "country")
State.text = UserDefaults.standard.string(forKey: "state")
}
}
override func viewDidDisappear(_ animated: Bool) {
super.viewDidDisappear(true)
if (billingTextView.text != "" && FirstName.text != "" && LastName.text != "" && Email.text != "" && PhoneNumber.text != "" && Address.text != "" && City.text != "" && PostalCode.text != "" && Country.text != "" && State.text != "" ){
billingTextView.text = defaults.string(forKey: "profileName")
FirstName.text = defaults.string(forKey: "firstName")
LastName.text = defaults.string(forKey: "lastName")
Email.text = defaults.string(forKey: "email")
PhoneNumber.text = defaults.string(forKey: "phoneNumber")
Address.text = defaults.string(forKey: "address")
Address2.text = defaults.string(forKey: "address2")
City.text = defaults.string(forKey: "city")
PostalCode.text = defaults.string(forKey: "postalCode")
Country.text = defaults.string(forKey: "country")
State.text = defaults.string(forKey: "state")
}
}
func textFieldDidEndEditing(_ textField: UITextField) {
if (billingTextView.text != "" && FirstName.text != "" && LastName.text != "" && Email.text != "" && PhoneNumber.text != "" && Address.text != "" && City.text != "" && PostalCode.text != "" && Country.text != "" && State.text != "" ){
defaults.set(billingTextView.text ?? "", forKey: "profileName")
defaults.set(FirstName.text ?? "", forKey: "firstName")
defaults.set(LastName.text ?? "", forKey: "lastName")
defaults.set(Email.text ?? "", forKey: "email")
defaults.set(PhoneNumber.text ?? "", forKey: "phoneNumber")
defaults.set(Address.text ?? "", forKey: "address")
defaults.set(Address2.text ?? "", forKey: "address2")
defaults.set(City.text ?? "", forKey: "city")
defaults.set(PostalCode.text ?? "", forKey: "postalCode")
defaults.set(Country.text ?? "", forKey: "country")
defaults.set(State.text ?? "", forKey: "state")
}
}
@IBAction func clear(_ sender: UIBarButtonItem) {
UserDefaults.standard.set("", forKey: "profileName")
UserDefaults.standard.set("", forKey: "firstName")
UserDefaults.standard.set("", forKey: "lastName")
UserDefaults.standard.set("", forKey: "email")
UserDefaults.standard.set("", forKey: "phoneNumber")
UserDefaults.standard.set("", forKey: "address")
UserDefaults.standard.set("", forKey: "address2")
UserDefaults.standard.set("", forKey: "city")
UserDefaults.standard.set("", forKey: "postalCode")
UserDefaults.standard.set("", forKey: "country")
UserDefaults.standard.set("", forKey: "state")
billingTextView.text = ""
FirstName.text = ""
LastName.text = ""
Email.text = ""
PhoneNumber.text = ""
Address.text = ""
Address2.text = ""
City.text = ""
PostalCode.text = ""
Country.text = ""
State.text = ""
}
@IBAction func proceedToPaymentSave(_ sender: UIButton) {
if (billingTextView.text != "" && FirstName.text != "" && LastName.text != "" && Email.text != "" && PhoneNumber.text != "" && Address.text != "" && City.text != "" && PostalCode.text != "" && Country.text != "" && State.text != "" ){
UserDefaults.standard.set(billingTextView.text!, forKey: "profileName")
UserDefaults.standard.set(FirstName.text!, forKey: "firstName")
UserDefaults.standard.set(LastName.text!, forKey: "lastName")
UserDefaults.standard.set(Email.text!, forKey: "email")
UserDefaults.standard.set(PhoneNumber.text!, forKey: "phoneNumber")
UserDefaults.standard.set(Address.text!, forKey: "address")
UserDefaults.standard.set(Address2.text!, forKey: "address2")
UserDefaults.standard.set(City.text!, forKey: "city")
UserDefaults.standard.set(PostalCode.text!, forKey: "postalCode")
UserDefaults.standard.set(Country.text!, forKey: "country")
UserDefaults.standard.set(State.text!, forKey: "state")
print("Data Saved!")
}
}