У меня есть фреймворк, которому нужно сохранять значения локально, для этого я выбрал UserDefaults.
Однако значения никогда не сохраняются, и следующая функция чтения всегда возвращает ""
после перезапуска приложения
class Preferences {
let preferences : UserDefaults
init (preferences : UserDefaults) {
self.preferences = preferences
}
// Private Key
func savePrivateKey(key : String) {
writeString(value: key, key: privateKeyKey)
}
func readPrivateKey() -> String! {
return readString(key: privateKeyKey)
}
private func readString(key : String) -> String? {
if preferences.object(forKey: key) == nil {
return "bananas"
} else {
return preferences.string(forKey: key)
}
}
private func writeString(value : String, key : String) {
preferences.set(value, forKey: key)
}
fileprivate let privateKeyKey = "privateKey"
}
Инициализировано с помощью:
let preferences = Preferences(preferences: UserDefaults.standard)
Я пробовал:
- Симулятор и физическое устройство
- Отладка иРелиз
- UserDefaults и SwiftyUserDefaults
Странно то, что при этом сохраняются Bool
значения, но не строковые.
Я думал, что это можетот неправильного использования UserDefaults
, но SwiftyUserDefaults
получает тот же результат.