Быстрое добавление значения к существующему значению пользователя по умолчанию

#ios #nsuserdefaults #swift3 #swiftyuserdefaults

#iOS #nsuserdefaults #swift3 #swiftyuserdefaults

Вопрос:

Например, я получил пользовательские значения по умолчанию с ключом «abc», и он содержит строку.

Последняя строка, сохраненная в этом ключе, — «aaa».

Теперь я хочу сохранить дополнительное значение для этого ключа, но я не хочу удалять последнее значение «aaa», потому что оно мне нужно.

Я хочу, чтобы во втором возврате содержался массив строк: [«aaa», «some_other_value», «some_other_value2″…].

Пока это мой код для хранения информации в пользовательских значениях по умолчанию:

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

Это код для получения данных:

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

Комментарии:

1. Если вы хотите сохранить массив, почему вы просто сохраняете a String ?

2. Вы можете использовать plist вместо userdefaults.и обновлять его каждый раз

Ответ №1:

Попробуйте следующий код для сохранения нового значения :

 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")
        }
  

Это код для получения данных:

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

Ответ №2:

     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")
  

Комментарии:

1. Это приведет к сбою при первом запуске приложения.