将数据从多个文本字段保存到UserDefaults

时间:2020-04-22 16:13:52

标签: ios swift nsuserdefaults

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

0 个答案:

没有答案