我正在创建一个应用程序,当应用程序第一次启动时,我必须创建一个plist。我稍后将使用plist存储用户稍后输入的详细信息。如何检测应用程序的首次启动?我正在尝试使用NSUserDefaults,但我认为我做错了什么。
答案 0 :(得分:15)
您可以使用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];
}
只有在第一次运行时,每个应用程序版本才会按时调用选择器firstStartCode。
好?
答案 1 :(得分:2)
我喜欢使用NSUserDefaults来存储第一次运行的指示。
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if (![defaults objectForKey:@"firstRun"])
[defaults setObject:[NSDate date] forKey:@"firstRun"];
[[NSUserDefaults standardUserDefaults] synchronize];
然后你可以稍后测试......
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if([defaults objectForKey:@"firstRun"])
{
// do something or not...
}
取自:Best way to check if an iPhone app is running for the first time
答案 2 :(得分:2)
您可以使用以下内容:
-(void) firstLaunch {
//Code goes here
}
-(void) firstLaunchCheck {
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"didLaunchFirstTime"]) {
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"didLaunchFirstTime"];
[self firstLaunch];
}
}