【问题标题】:Cannot retrieve Date object from UserDefaults Swift无法从 UserDefaults Swift 中检索 Date 对象
【发布时间】:2018-07-16 15:02:22
【问题描述】:

我想向 UserDefaults.standard 发布和检索 Date 对象。截至目前,我使用UserDefaults.standard.set(firstDate, forKey: "Date") 发布日期对象并使用inDate = UserDefaults.standard.object(forKey: "Date") 检索它,其中inDate 先前被声明为日期对象。

但是,当我这样做时,我得到 Cannot assign value of type 'Date' to type 'Any' 如果我尝试转换为 as! 日期类型程序崩溃,如果我有条件地这样做 (as?),inDate 就是零。非常感谢任何帮助。

【问题讨论】:

  • 你确定 firstDate 是一个 Date 对象吗?
  • 您在访问Date 时遇到了问题。它是从UserDefaults 还是从CoreData 检索它?

标签: swift date userdefaults


【解决方案1】:

要为UserDefaults 中的日期对象设置值,您可以这样做:

let yourDate = Date() // current date
UserDefaults.standard.set(yourDate, forKey: "YourDefaultKey")

要检索它,您可以使用:

let yourDate = UserDefaults.standard.value(forKey: "YourDefaultKey") as! Date

【讨论】:

  • 谢谢,就是这样。问题是尝试使用标准对象而不是标准值来检索它。
  • 我要补充一点,如果您想从 Core Data 获取最新日期,将其存储在 UserDefaults 中可能不是最好的方法。在这种情况下,您可能希望设置一个NSFetchRequest,批量大小设置为 1,并按降序获取并使用获取结果中的日期。
猜你喜欢
  • 2017-03-27
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 2021-01-17
  • 1970-01-01
  • 1970-01-01
  • 2016-10-25
  • 1970-01-01
相关资源
最近更新 更多