在用户将应用程序升级到较新版本后,我需要检测应用程序的首次启动。在用户将应用程序升级到新版本后,我只需要在首次启动应用程序时执行某些任务。网上有很多链接,但没有一个能清楚地回答我的查询。如何在 Swift 2 和 iOS 9 中实现这一点。
大多数可用的答案都说要在 NSUserDefaults 中维护一个键并将其值设置为 false 并在首次启动后使其为 true。但问题是在我升级我的应用程序后,变量仍然是真实的,因此我的方案在应用程序升级时失败。任何帮助将非常感激。谢谢!
在用户将应用程序升级到较新版本后,我需要检测应用程序的首次启动。在用户将应用程序升级到新版本后,我只需要在首次启动应用程序时执行某些任务。网上有很多链接,但没有一个能清楚地回答我的查询。如何在 Swift 2 和 iOS 9 中实现这一点。
大多数可用的答案都说要在 NSUserDefaults 中维护一个键并将其值设置为 false 并在首次启动后使其为 true。但问题是在我升级我的应用程序后,变量仍然是真实的,因此我的方案在应用程序升级时失败。任何帮助将非常感激。谢谢!
尝试这个:
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
}
将 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.
}