Сохранение данных из нескольких текстовых полей в UserDefaults - PullRequest
0 голосов
/ 22 апреля 2020

Я ищу способ сохранить данные в пользовательских настройках по умолчанию на основе условия, а также лучший способ сделать фактическое сохранение, потому что я чувствую, что способ, которым я это делаю, использует слишком много кода. Мой код должен сохранять данные из текстовых полей, если заполнены все, кроме одного. В настоящее время данные сохраняются правильно, когда я открываю и закрываю приложение, когда отсутствует оператор 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!")
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...