2010-12-05 27 views
4

J'ai mon settings.bundle configuré pour montrer 4 paramètres, auxquels je veux que l'utilisateur accède/change. Au cours de la vie de l'application, j'ai un autre couple de valeurs, que je stocke dans NSUserDefaults, mais je ne suis pas intéressé à les afficher dans le Settings.app. Est-il possible que le nombre de valeurs dans settings.bundle soit différent du nombre réel de paires clé/valeur, stockées dans NSUserDefaults? Que faut-il faire pour bien le gérer?Settings.bundle vs NSUserDefaults

Merci,

Répondre

2

paires clé/valeur dans votre paquet de paramètres sont gérés par [NSUserDefaults standardUserDefaults], mais il n'y a rien pour vous empêcher d'ajouter vos propres clés et des valeurs à gérer. Ils n'apparaîtront pas dans l'écran Paramètres de votre application, sauf si vous les ajoutez à la liste de propriétés de l'ensemble.

Il suffit d'enregistrer, stocker et récupérer les valeurs par défaut de l'utilisateur de la même manière, que ce soit à partir de votre ensemble de paramètres ou non; il n'y a rien de supplémentaire à faire.

+0

dois-je appeler registerDefaults chaque fois dans l'applicationDidFinishLaunchingWithOptions ...? Ou seulement la première fois? Je demande parce qu'une certaine chaîne de réglage la deuxième fois retourne zéro. Première fois que je l'enregistre avec une valeur par défaut, la deuxième fois, je reçois zéro ... –

+0

@Nava Carmon: Hmm, je n'ai pas rencontré de problèmes appelant 'registerDefaults:' à chaque fois ... – BoltClock

+0

ça arrive si je ne ' t changez cette valeur depuis settings.app. Chaque fois que je recharge mon application, NSUserDefaults retourne zéro pour cette valeur spécifique. Seulement après je l'ai changé dans Settings.app il renvoie la valeur changée. Comment je le répare? Je synchronise mes valeurs par défaut après l'avoir enregistré et dans la fonction applicationWillEnterBackground? –