#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. Это приведет к сбою при первом запуске приложения.