【问题标题】:Store dictionary in UserDefaults using @Published使用 @Published 在 UserDefaults 中存储字典
【发布时间】:2020-08-09 15:40:30
【问题描述】:

我有这个:

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

它告诉我:

无法将类型“[String : Any]”的值转换为预期的参数类型“[String : Date]”

这里有什么问题?

谢谢

【问题讨论】:

    标签: swift swiftui


    【解决方案1】:

    Casting... UserDefaults 不知道内部值,所以类型是 Any。你必须明确地转换,因为你知道你的类型,但安全,以防万一。

    所以解决办法是

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-03-26
      • 2018-10-03
      • 2018-05-30
      • 1970-01-01
      • 2019-12-27
      • 2020-02-13
      • 1970-01-01
      相关资源
      最近更新 更多