0

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

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

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

如果应用程序是从 iTunes 更新的,则更改 Who var 以确定我的应用程序已更新,因为我通过 Targets>Summary>Version 中的 xcode 修改来证明。第一个 var 更改但第二个没有更改。

我必须选择第一个还是第二个,我如何证明这一点?

4

1 回答 1

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;
}

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

于 2012-07-28T03:39:27.247 回答