第一次打开应用程序时在 UserDefaults 中保存日期

Saving Date in UserDefaults of the first time the App was opened

我试图在第一次打开应用程序时设置 Date()。这将在 UserDefaults.

中设置

我使用 register() 将日期保存在 UserDefault 中。问题是..这个值似乎在 每次 启动时都节省了,这违背了 UserDefaults.register.

的目的

这是我的代码:

let initialOpen: NSDictionary = ["FirstOpen" : Date()]
UserDefaults.standard.register(defaults: initialOpen as! [String : AnyObject])

let firstOpenDate = UserDefaults.standard.value(forKey: "FirstOpen")
print("First Opened: \(firstOpenDate)")

我在 didFinishLaunchingWithOptions 内调用这个。

如何在UserDefaults中记录App首次启动的时间?

  1. 不需要register(defaults:)
  2. 不要使用 value(forKey:)UserDefaults 读取数据。

您需要做的就是先检查日期是否已设置,如果没有,请设置。

if let firstOpen = UserDefaults.standard.object(forKey: "FirstOpen") as? Date {
    print("The app was first opened on \(firstOpen)")
} else {
    // This is the first launch
    UserDefaults.standard.set(Date(), forKey: "FirstOpen")
}