Сохранение словаря в UserDefaults с помощью @Published - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть это:

@Published var mealsAndTime: [String: Date] = UserDefaults.standard.dictionary(forKey: "mealsAndTime") {
    didSet {
        UserDefaults.standard.set(self.mealsAndTime, forKey: "mealsAndTime")
    }
}

и оно говорит мне:

Cannot convert value of type '[String : Any]' to expected argument type '[String : Date]'

Что там не так?

Спасибо

1 Ответ

1 голос
/ 26 апреля 2020

Casting ... UserDefaults не знает о внутренних значениях, поэтому тип Any. Вы должны приводить явно, как вы знаете, ваши типы, но безопасно, на всякий случай.

Так что решение

@Published var mealsAndTime: [String: Date] =
    UserDefaults.standard.dictionary(forKey: "mealsAndTime") as? [String: Date] ?? [:] {
    didSet {
        UserDefaults.standard.set(self.mealsAndTime, forKey: "mealsAndTime")
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...