我的 iOS 应用程序中有一个方法可以在检测到我的服务器何时为我的应用程序提供更高版本(新的 ipa 版本)时更新应用程序。如果用户想要下载它,应用程序会在 iPad 上自行更新。
问题是,当应用程序第一次打开新版本时,我想从数据库中更新一些实体属性,但我不知道该怎么做。当我下载最新的 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) 只在我第一次启动新版本时做我想做的事情。