应用更新问题

时间:2012-07-28 03:05:36

标签: iphone objective-c ios ipad

大家好,我在我的应用中遇到了问题。我需要确定我的应用程序是否已更新到某个点。我用这种方法发现了如何获得当前版本

 NSString *first = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"];

 NSString *second = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

如果应用程序是从itunes更新的,那么更改了哪个var以确定我的应用程序已更新,因为我通过修改了目标>摘要>版本中的xcode来证明。第一个var发生了变化,但第二个变化没有变化。

我必须选择第一个或第二个,以及我如何证明这一点?

1 个答案:

答案 0 :(得分:1)

我不确定这是否是您要查找的内容,但此代码可以通过在NSUserDefaults中存储版本信息来告诉您应用是否已更新。

- (BOOL)wasUpdated {
    // access NSUserDefaults
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    // get previous version number from defaults
    NSString *previousVersion = [defaults stringForKey:@"previousVersion"];

    // get current version number from info plist
    NSString *currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleVersion"];

    // check against previousVersion being nil
    if (!previousVersion) {
        // set current version to previous version
        [defaults setObject:currentVersion forKey:@"previousVersion"];

        // previousVersion didn't exist and can't be checked, return NO
        return NO;
    }

    // return YES if the versions are not the same
    if (NSOrderedSame != [previousVersion compare:currentVersion]) return YES;

    // return NO if they are the same
    return NO;
}

希望这就是你所需要的。告诉我,如果我不明白你的意思。