当用户从App Store更新iOS应用程序时,运行一组快速过程

时间:2014-03-26 15:13:03

标签: ios nsuserdefaults appdelegate

我在App Store中有一个应用程序。我正在对新版本(1.2.0)进行更改,当用户在App Store中更新应用程序时,我希望应用程序运行一组教程。运行教程不是问题;问题是AppDelegate中是否存在一个方法,或者只是在用户第一次更新后运行应用程序时才会运行该方法?

我已经看到了这个问题iOS : Call a method just one time,它指出了NSUserDefaults的使用,这很棒,但是如何针对特定的版本号和我的情况进行部署呢?

简单地说,我想运行一些代码来说明"如果用户正在运行< 1.2.0并更新到1.2.0,运行此代码,否则忽略"。更新应用程序的方式相同,有几个屏幕只显示第一次。

对不起,这是通用的,但我不完全确定在哪里运行此代码。我的故事板将初始根视图控制器设置为选项卡栏控制器。我可以在用户运行应用程序时显示的第一个表视图中设置此项吗?如果是这样,我将如何做这样的事情?

更新: 在我的AppDelegate didFinishLaunching中,我输入了以下代码:

NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];
NSLog(@"Version is %@", version); 

[[NSUserDefaults standardUserDefaults] setObject:version forKey:@"CFBundleShortVersionString"];
[[NSUserDefaults standardUserDefaults] synchronize];

在我的时间轴表视图(被调用的第一个视图)中,在viewDidLoad中,我把:

self.appVersion = [[NSUserDefaults standardUserDefaults] objectForKey:@"CFBundleShortVersionString"];


if ([self.appVersion isEqualToString:@"1.2.0"])
{
    if ([TutorialViewController hasSeenTutorial] == NO)
    {
        NSArray *tutorialImages = [[NSArray alloc] init];
        tutorialImages = @[[UIImage imageNamed:@"TimelineTut.png"],
                           [UIImage imageNamed:@"Tut 1.png"],
                           [UIImage imageNamed:@"Tutty 2.png"],
                           [UIImage imageNamed:@"newtut3.png"],
                           [UIImage imageNamed:@"newnewtut4colors.png"],
                           [UIImage imageNamed:@"newtut5.png"],
                           [UIImage imageNamed:@"tut 6.png"]];
        TutorialViewController *tutorial = [[TutorialViewController alloc] initWithImages:tutorialImages];
        [self presentViewController:tutorial animated:YES completion:nil];
        [TutorialViewController setHasSeenTutorial:YES];

    }

}

但是当我从1.1.0更新到1.2.0时,它并没有播放教程。

任何指导对此都非常好。

谢谢,

2 个答案:

答案 0 :(得分:2)

您可以使用

获取应用的版本号
NSString* version = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

将其保存在用户默认值中,当您更新应用程序时,它可以从用户默认值中读取上次安装的版本并做出正确反应。

答案 1 :(得分:1)

您可以使用NSUserDefaults检查应用程序是否已在此版本中首次运行,然后执行教程代码。

相关问题