2011-01-23 6 views
6

J'ai cherché une réponse mais je n'ai pas vraiment trouvé ce que je cherchais.Comment vérifier si NSUserDefaults existe

J'ai une application et utilise NSUserDefaults pour stocker « currentGameStatus » et voudrait poser les questions suivantes:

  1. Comment puis-je vérifier si les NSUserDefaults .plist existe? Besoin de cela pour déterminer si je dois le créer pour la première fois et si oui, remplissez-le avec les valeurs par défaut

  2. Où puis-je le trouver sur mon Mac (simulateur de course)? Aurait besoin de le supprimer pour tester si la première exécution fonctionne? existe déjà par défaut

+1

En ce qui concerne votre deuxième question, consultez la section [Comment accéder facilement à NSUserDefaults sauvegardés?] (Http://stackoverflow.com/questions/1676938/easy-way-to-see-saved-nsuserdefaults) question/réponse . –

Répondre

11

La façon dont je le fais est que je mets un drapeau BOOL dans NSUserDefaults si elle n'existe pas:

if(![[NSUserDefaults standardUserDefaults] boolForKey:@"firstRun"]) { 
    //do initialization stuff here... 

    [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"firstRun"]; 
} 
+0

Et si plus tard, j'ai mis le premier passage à faux? il sera toujours entrer dans la déclaration if et remis à OUI – Kiddo

1
  1. NSUserDefaults. Vous pouvez y ajouter par [[NSUserDefaults standardUserDefaults] setObject:@"object" forKey:@"key"];

  2. Vous pouvez trouver les NSUserDefaults .plist ici alt text

22

vous ne vérifiez pas.

vous enregistrez vos valeurs par défaut. et si vous n'avez pas enregistré une valeur, la valeur par défaut sera utilisée.

NSDictionary *defaultUserDefaults = [NSDictionary dictionaryWithObjectsAndKeys: 
            [NSNumber numberWithBool:NO], @"Foo", 
            @"Bar", @"Baz", 
            [NSNumber numberWithInteger:12], @"FooBar", 
            nil]; 
[[NSUserDefaults standardUserDefaults] registerDefaults:defaultUserDefaults]; 

et vous faites cela chaque fois vos lancements d'applications.

+0

Wow, je ne peux pas croire que j'ai manqué cela. +1 à vous. –

+0

Ceci devrait être la réponse acceptée. – Vince