我正在寻找一种根据条件将数据保存到“用户默认值”的方法,也是一种进行实际保存的更好的方法,因为我感觉自己的方法使用了太多的代码。我的代码应该填充文本字段中的数据(如果只填充了其中一个,则全部除外)。当前,当不存在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!")
}
}