обнаружил nil при разворачивании в UserDefaults - PullRequest
0 голосов
/ 21 июня 2020

Я хочу сохранить дату в userDefaults.

Кнопка (действие: {

                var date = Date()
                if date != nil{
                    date = UserDefaults.standard.object(forKey: "myDate") as! Date
                }
                print(date)
            }) {
            ........(design stuff)
            }

Также протестировано: let date = UserDefaults.standard.object (forKey: "myDate") as! Date

Но при разворачивании необязательного значения я всегда получаю Неожиданно найденный nil.

1 Ответ

0 голосов
/ 21 июня 2020

Проверьте, доступен ли объект в UserDefaults, прежде чем принудительно применить его, используя !. Всегда безопасно приводить опции, используя if let или guard let.

Чтобы сохранить дату:

UserDefaults.standard.set(myDate, forKey: "myDate")

Чтобы получить дату:

if let object = UserDefaults.standard.object(forKey: "myDate") as? Date {
    date = object
} else {
    print("No object for key myDate in UserDefaults")
}
...