Détecter la première exécution d'une application

Je crée une application dans laquelle je dois créer une plist lorsque l'application se lance pour la première fois. Je vais plus tard utiliser le plist pour stocker les détails d'un user plus tard. Comment puis-je détecter le premier lancement de l'application? J'expérimente avec NSUserDefaults mais je pense que je fais quelque chose de mal.

Vous pouvez le faire avec NSUserDefaults. Mais soyez prudent avec le numéro de version.

Faites ce qui suit:

NSSsortingng *bundleVersion = [[NSBundle mainBundle] objectForInfoDictionaryKey:(NSSsortingng *)kCFBundleVersionKey]; NSSsortingng *appFirstStartOfVersionKey = [NSSsortingng ssortingngWithFormat:@"first_start_%@", bundleVersion]; NSNumber *alreadyStartedOnVersion = [[NSUserDefaults standardUserDefaults] objectForKey:appFirstStartOfVersionKey]; if(!alreadyStartedOnVersion || [alreadyStartedOnVersion boolValue] == NO) { [self firstStartCode]; [[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:appFirstStartOfVersionKey]; } 

le sélecteur firstStartCode ne sera appelé à l'heure pour chaque version de l'application que lors de la première exécution.

D'accord?

J'aime utiliser NSUserDefaults pour stocker une indication de la première exécution.

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if (![defaults objectForKey:@"firstRun"]) [defaults setObject:[NSDate date] forKey:@"firstRun"]; [[NSUserDefaults standardUserDefaults] synchronize]; 

Vous pouvez ensuite le tester plus tard …

 NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; if([defaults objectForKey:@"firstRun"]) { // do something or not... } 

Tiré de: Meilleure façon de vérifier si une application iPhone est en cours d'exécution pour la première fois

Vous pouvez utiliser ce qui suit:

 -(void) firstLaunch { //Code goes here } -(void) firstLaunchCheck { if(![[NSUserDefaults standardUserDefaults] boolForKey:@"didLaunchFirstTime"]) { [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:@"didLaunchFirstTime"]; [self firstLaunch]; } }