检测应用程序的第一次运行
我正在创build一个应用程序,在应用程序第一次启动时,我必须创build一个plist。 我稍后将使用plist来存储用户稍后input的细节。 如何检测应用程序的首次启动? 我正在尝试NSUserDefaults,但我认为我做错了什么。
你可以用NSUserDefaults来做到这一点。 但要注意版本号。
请执行下列操作:
NSString *bundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSString *)kCFBundleVersionKey]; NSString *appFirstStartOfVersionKey = [NSString stringWithFormat:@"first_start_%@", bundleVersion]; NSNumber *alreadyStartedOnVersion = [[NSUserDefaults standardUserDefaults] objectForKey:appFirstStartOfVersionKey]; if(!alreadyStartedOnVersion || [alreadyStartedOnVersion boolValue] == NO) { [self firstStartCode]; [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:appFirstStartOfVersionKey]; }
仅在第一次运行时,才会按时为每个应用程序版本调用select器firstStartCode。
好的?
我喜欢使用NSUserDefaults来存储第一次运行的指示。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (![defaults objectForKey:@"firstRun"]) [defaults setObject:[NSDate date] forKey:@"firstRun"]; [[NSUserDefaults standardUserDefaults] synchronize];
稍后您可以testing它…
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if([defaults objectForKey:@"firstRun"]) { // do something or not... }
采取: 最好的方式来检查一个iPhone应用程序是否第一次运行
您可以使用以下内容:
-(void) firstLaunch { //Code goes here } -(void) firstLaunchCheck { if(![[NSUserDefaults standardUserDefaults] boolForKey:@"didLaunchFirstTime"]) { [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"didLaunchFirstTime"]; [self firstLaunch]; } }