我正在创建一个应用程序,在其中必须在应用程序首次启动时创建一个plist文件。稍后我将使用这个plist文件来存储用户输入的详细信息。如何检测应用程序的第一次启动?我尝试使用NSUserDefaults进行实验,但我认为我做错了什么。
我正在创建一个应用程序,在其中必须在应用程序首次启动时创建一个plist文件。稍后我将使用这个plist文件来存储用户输入的详细信息。如何检测应用程序的第一次启动?我尝试使用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仅在每个应用程序版本的第一次运行时调用一次。
好吗?
我喜欢使用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...
}
-(void) firstLaunch {
//Code goes here
}
-(void) firstLaunchCheck {
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"didLaunchFirstTime"]) {
[[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"didLaunchFirstTime"];
[self firstLaunch];
}
}