首页 文章

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

提问于
浏览
1

我试图在第一次打开应用程序时设置 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 内调用它 .

How can I record the time that the App is launched for the first time in UserDefaults?

1 回答

  • 2
    • 不需要 register(defaults:) .

    • 不要使用 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")
    }
    

相关问题