は、アプリケーションがdidFinishLaunchingWithOptions:
方法で初めて開始した、と私は、デフォルトではアプリケーションの現在のバージョンを保存する場合、私は確認しています。 これはアプリケーションが更新されるたびに削除される必要があるファイルと、そのバージョンのアプリケーション用に保存する必要のあるファイルを追跡できます。続き は、そのためのコードです:
if (![[NSUserDefaults standardUserDefaults] boolForKey:kNOT_FIRST_LAUNCH]) {
NSLog(@"fresh install = %d", (int)[self checkForFreshInstall]);
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:kAPPLICATION_LAUNCHING_FIRST_TIME];
[[NSUserDefaults standardUserDefaults] synchronize];
} else {
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:kAPPLICATION_LAUNCHING_FIRST_TIME];
[[NSUserDefaults standardUserDefaults] synchronize];
}
これはcheckForFreshIntallMethodです:
- (BOOL) checkForFreshInstall {
NSString *currentVersion = (NSString*)[[NSBundle mainBundle] objectForInfoDictionaryKey:@"CFBundleVersion"];
NSString *prevVersion = (NSString *)[[NSUserDefaults standardUserDefaults] valueForKey:@"prevVersion"];
if (prevVersion == nil) {
// Starting up for first time with NO pre-existing installs (e.g., fresh
// install of some version)
[[NSUserDefaults standardUserDefaults] setValue:currentVersion forKey:@"prevVersion"];
// Save changes to disk
[[NSUserDefaults standardUserDefaults] synchronize];
return YES;
}
else if ([prevVersion intValue] < [currentVersion intValue]) {
// Starting up for first time with this version of the app. This
// means a different version of the app was alread installed once
// and started.
[[NSUserDefaults standardUserDefaults] setValue:currentVersion forKey:@"prevVersion"];
// Save changes to disk
[[NSUserDefaults standardUserDefaults] synchronize];
return NO;
}
return YES;
}
は、ご質問があれば私に教えてください。
「NSArray * currentparts = [currentVersion componentsSeparatedByString:@ "。"]; 'とNSArray * perviousParts = [pervVersion componentsSeparatedByString:@]のような何かをいつでも実行できます。インストールされているバージョンは、以前のバージョンよりも大きいです。お役に立てれば。 – nimeshdesai
メジャーバージョンとマイナーバージョンには常に2つの整数を使用できます(または#。#。#には3つの整数) –