Как сохранить String в UserDefaults

swift3

#1

Доброго вренеми суток!

Ребята, подскажите как сохранить String в UserDefaults, swift 4?
Можно ли вообще сохранить String в UserDefaults.

Заранее всех вас благодарю!


#2

запись

let text = "Hello, world!"
      let userDefaults = UserDefaults.standard
      userDefaults.set(text, forKey: "text")

чтение

let userDefaultsGet = UserDefaults.standard
    let newText = userDefaultsGet.object(forKey: "text") as! String
    print(newText)

#3

Есть отличный Framework ссылка на Github


#4

Спасибо за ответ! Заработало.

Но дело в том, что я хочу через UserDefaults сохранять данные в массив.
То есть пишешь что-то в textField и через button добавляет в массив.
Все было бы не плохо, но если смотреть count массива все время является число 1.

Получается что если сохранять текст в массив с помощью UserDefaults, то все данные будут перезаписываться, а количество всегда будет равна число 1?

Заранее всем спасибо!


#5

В таком случае вам нужно создать Dictionary, либо просто массив строк.
При клике на кнопку, добавляете запись в массив, после чего переводите массив в json строку и сохраняете ее в UserDefaults.
Для обратного процесса, нужно будет полученные данные из UserDefaults перегнать из json сртоки в массив строк, либо в Dictionary.

P.S. даже еще проще, библиотека, которую предложил Psilc, поддерживает хранение массивов и словарей.


#6
 let array = [1, 2, 3]
    let userDefaults = UserDefaults.standard
    print(array)

    userDefaults.set(array, forKey: "array")


    let userDefaultsGet = UserDefaults.standard
    let arrayGet = userDefaultsGet.object(forKey: "array") as! Array<Any>

    print(arrayGet)

#7

не проще ли использовать realmswift?


#8

тогда проще использовать Palau
Realm требует слишком много кода