2013-02-21 3 views
2

J'utilise NSUserDefaults pour stocker certains paramètres d'application.Ajout de nouveaux paramètres à NSUserDefaults

Je dois définir une valeur par défaut pour mes paramètres.

J'ai donc ajouté isAppFirstLaunch valeur par défaut et définir toutes les valeurs (initiales) par défaut nécessaires à mes paramètres dans le premier lancement de l'application.

Mais très souvent, j'ajoute de nouveaux paramètres. Dans ce cas isAppFirstLaunch is FALSE et je ne peux pas définir de valeur par défaut, donc je dois supprimer mon application et l'installer againg.

Donc la question est: Comment régler les nouveaux paramètres par défaut?.


Comme j'unserstand si mon application est dans l'appstore

[[[NSBundle mainBundle] infoDictionary]objectForKey:@"CFBundleVersion"]]; 

que je peux stocker la version app dans mes valeurs par défaut et vérifier si la version modifiée Nouveaux paramètres par défaut.

Mais que faire avec le débogage? Dois-je toujours supprimer l'application pour nettoyer les défauts?

+0

C'est exactement ce que [ '- [NSUserDefaults registerDefaults:]'] (https://developer.apple.com/library/mac/documentation/Cocoa/Reference/Foundation/Classes/NSUserDefaults_Class/Reference/Reference.html# // apple_ref/occ/instm/NSUserDefaults/registerDefaults :) est pour. –

+0

Merci, fermé. –

Répondre

1

Vous pouvez simplement vérifier si le réglage existe déjà (si différent de NULL) et s'il n'existe pas, réglez-le sur la valeur par défaut.

Vous pouvez ajouter un code à la méthode applicationDidFinishLaunching de votre délégué d'application qui vérifie si le paramètre est NULL et l'est ainsi, qu'il ne le définit. Pour ce faire, pour tous les paramètres de l'application.

+0

Belle réponse, j'ai aussi pensé à ce que je vérifie le premier lancement de l'application. Mais toutes les valeurs par défaut sont int, bool et float. C'est pourquoi floatForKey: ou boolForKey: ne me renvoie pas NULL. –

+0

Bien que ce ne retournerait nul – byteSlayer

+0

@george il retournera zéro pour ces types – byteSlayer

Questions connexes