Help Pleasee
Help Pleasee

Reputation: 211

Swift Adding Value to Existing User Defaults Value

I got User Defaults with the key "abc" for example and it contains a string.

The last string stored in this key is "aaa".

Now, I want to store an additional value for this key, but I don't want to delete the last value "aaa" because I need it.

I want to have an Array of strings contains at the second retreive: ["aaa","some_other_value", "some_other_value2"...].

This is my code so far to store the information in user defaults:

self.user_defaults.set(self.myTextField.text, forKey:"asd")

This is the code for get the data:

if let arr = user_defaults.string(forKey:"asd"){
    print (arr)
}

Upvotes: 2

Views: 2376

Answers (2)

Yagnesh Dobariya
Yagnesh Dobariya

Reputation: 2251

    let asdArr = [String]()
    if NSUserDefaults.standardUserDefaults().objectForKey("asd") != nil {
      asdArr = NSUserDefaults.standardUserDefaults().objectForKey("asd")
    }
    asdArr.append(self.myTextField.text)
    NSUserDefaults.standardUserDefaults().setObject(asdArr, forKey: "asd")

Upvotes: 0

Sandeep Kumar
Sandeep Kumar

Reputation: 328

Try follwing code for save new value :

if let arr = user_defaults.array(forKey: "asd")
        {
            var arrvalues = arr as! [String]
            arrvalues.append(self.myTextField.text)
            self.user_defaults.set(arrvalues, forKey:"asd")
            self.user_defaults.synchronize()
            print (arr)
        }
        else
        {
            self.user_defaults.set([self.myTextField.text], forKey:"asd")
        }

This is the code for get the data:

if let arr = user_defaults.array(forKey:"asd"){
    print (arr)
}

Upvotes: 6

Related Questions