0

在用户将应用程序升级到较新版本后,我需要检测应用程序的首次启动。在用户将应用程序升级到新版本后,我只需要在首次启动应用程序时执行某些任务。网上有很多链接,但没有一个能清楚地回答我的查询。如何在 Swift 2 和 iOS 9 中实现这一点。

大多数可用的答案都说要在 NSUserDefaults 中维护一个键并将其值设置为 false 并在首次启动后使其为 true。但问题是在我升级我的应用程序后,变量仍然是真实的,因此我的方案在应用程序升级时失败。任何帮助将非常感激。谢谢!

4

2 回答 2

3

尝试这个:

    let existingVersion = NSUserDefaults.standardUserDefaults().objectForKey("CurrentVersionNumber") as? String
    let appVersionNumber = NSBundle.mainBundle().objectForInfoDictionaryKey("CFBundleShortVersionString") as! String

    if existingVersion !=  appVersionNumber {
        NSUserDefaults.standardUserDefaults().setObject(appVersionNumber, forKey: "CurrentVersionNumber")
        NSUserDefaults.standardUserDefaults().synchronize()
       //You can handle your code here
    }
于 2016-10-14T11:15:15.817 回答
2

将 Yogesh 的完美而简单的解决方案更新为 swift 4

    let existingVersion = UserDefaults.standard.object(forKey: "CurrentVersionNumber") as? String
    let appVersionNumber = Bundle.main.object(forInfoDictionaryKey: "CFBundleShortVersionString") as! String

    if existingVersion != appVersionNumber {
        print("existingVersion = \(String(describing: existingVersion))")
        UserDefaults.standard.set(appVersionNumber, forKey: "CurrentVersionNumber")

 // run code here.

    }
于 2018-11-27T17:12:05.463 回答