Обнаружение первого запуска приложения - PullRequest
5 голосов
/ 13 октября 2011

Я создаю приложение, в котором мне нужно создать список, когда приложение запускается в первый раз.Позже я собираюсь использовать plist для хранения деталей, которые пользователь вводит позже.Как я могу обнаружить первый запуск приложения?Я экспериментировал с NSUserDefaults, но думаю, что делаю что-то не так.

Ответы [ 3 ]

15 голосов
/ 13 октября 2011

Вы можете сделать это с 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 будет вызываться вовремя только для каждой версии приложения при самом первом запуске.

Хорошо

2 голосов
/ 14 октября 2011

Вы можете использовать следующее:

-(void) firstLaunch {
    //Code goes here
}

-(void) firstLaunchCheck {
    if(![[NSUserDefaults standardUserDefaults] boolForKey:@"didLaunchFirstTime"]) {
        [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"didLaunchFirstTime"];
        [self firstLaunch];
    }
}
2 голосов
/ 13 октября 2011

Мне нравится использовать 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...
}

Получено из: Лучший способ проверить, запущено ли приложение для iPhone в первый раз

...