我有这个:
@Published var mealsAndTime: [String: Date] = UserDefaults.standard.dictionary(forKey: "mealsAndTime") {
didSet {
UserDefaults.standard.set(self.mealsAndTime, forKey: "mealsAndTime")
}
}
它告诉我:
无法将类型“ [String:Any]”的值转换为预期的参数类型“ [String:Date]”
这是怎么了?
谢谢
答案 0 :(得分:1)
投射... UserDefaults不了解内部值,因此类型为Any。如您所知,您必须显式地进行类型转换,但为了安全起见,以防万一。
所以解决办法是
@Published var mealsAndTime: [String: Date] =
UserDefaults.standard.dictionary(forKey: "mealsAndTime") as? [String: Date] ?? [:] {
didSet {
UserDefaults.standard.set(self.mealsAndTime, forKey: "mealsAndTime")
}
}