Подтвердить что ты не робот

Сохранить словарь в userdefaults в swift 3 с помощью xcode 8

Я использую следующий код для сохранения объекта UserDefaults (ранее NSUserDefaults) с помощью xcode 8:

let defaults = UserDefaults.standard()
defaults.set(someObject, forKey: "someObject")
print(defaults.object(forKey: "someObject"))

someObject - это словарь, и я запускаю симулятор.

По какой-то причине это не сохраняет значение и печатается "nil". Удивление, если это проблема симулятора.

4b9b3361

Ответ 1

Эта проблема, похоже, вызвана наличием двух версий xcode/simulator.

Что для меня работало, так это удаление xcode 7 и просто сохранение xcode 8 beta в моей системе. Опорожнение мусора, сброс симулятора и запуск. Я также перезапустил компьютер.

После выполнения этих шагов симулятор может сохранять в UserDefaults.

Ответ 2

Для Swift 3

UserDefaults.standard.setValue(token, forKey: "user_auth_token")
print("\(UserDefaults.standard.value(forKey: "user_auth_token")!)")

Ответ 3

Хорошо работать с этим..!

    let dict:[String:String] = ["key":"Hello"]
    UserDefaults.standard.set(dict, forKey: "dict")
    let result = UserDefaults.standard.value(forKey: "dict")
    print(result!)
    // Output -> { key:hello;}

Ответ 4

Это недокументированная, но известная проблема, что NSUserDefaults/UserDefualts не работает в симуляторе iOS 10, если ранее был запущен симулятор iOS 8/9.

Перезагрузив Mac и перейдя непосредственно на XCode 8, симулятор iOS 10 исправит эту проблему.

Смотрите также: Почему мое приложение не будет запущено в XCode 8 beta (8S128d)