我的iOS应用程序中有一种方法,当检测到我的服务器何时有更大的应用程序版本(一个新的ipa版本)时,就会更新应用程序。如果用户想下载它,应用程序会在iPad上更新自己。
问题是,当应用程序第一次打开新版本时,我想从DB更新一些实体,但我不知道如何。我无法调试它,因为当我下载最新的ipa时,对于XCode,应用程序崩溃了。
我想在AppDelegate.m:
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"HasLaunchedOnce"])
{
//do the stuff i wanna do
}
else
{
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"HasLaunchedOnce"];
[[NSUserDefaults standardUserDefaults] synchronize];
// This is the first launch ever
}但是我不知道这个[NSUserDefaults standardUserDefaults setBool:YES forKey:@"HasLaunchedOnce"]是否在更新之前设置为YES,因为这个过程应该是:
(1)首次启动该应用程序。2)应用程序检测更新版本。3)现在下载同样的应用程序->,苹果将旧版本“替换”到新版本。4)打开新版本的应用程序。5)只在我第一次推出新版本的时候做我想做的事情。
发布于 2013-11-01 17:55:26
您可以使用存储在NSUserDefaults中的整数,每个版本的应用程序都有一个硬编码的版本号。如果整数低于硬编码版本,提示更新:
NSInteger currentVersion = 3; // increment with each new version
if ([[NSUSerDefaults standardUserDefaults] integerForKey:@"HasLaunchedForVersion"] < currentVersion) {
[[NSUserDefaults standardUserDefaults] setInteger:currentVersion forKey:@"HasLaunchedForVersion"];
[[NSUserDefaults standardUserDefaults] synchronize];
// This is the first launch for this version
} else {
// App hasn't been updated since last launch
}发布于 2013-11-01 17:49:16
他们不会被移走。而且会有古老的价值观。
如果旧版本中使用"HasLaunchedOnce“。使用一个新的,并称之为"HasUpdateLaunchedOnce“。
检查这两个值并决定要做什么。
if (HasLaunchedOnce exists && HasUpdateLaunchedOnce not exists)
// proceedhttps://stackoverflow.com/questions/19732311
复制相似问题