0

こんにちは、アプリに問題があります。アプリがある時点まで更新されているかどうかを確認する必要があります。この方法で、現在のバージョンを取得する方法を見つけました

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

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

アプリが iTunes から更新された場合、Targets>Summary>Version の xcode から変更して証明するため、Who var が変更されてアプリが更新されたことを確認します。最初の var は変更されますが、2 番目の変数は変更されません。

最初または2番目を選択する必要があり、これをどのように証明できますか?

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 に答える