La définition de la valeur par défaut du bundle ne sera pas définie
J'ai une application iOS avec réglages.bundle qui gère les différents paramètres pour mon application avec Switch toggle
. Je définir des valeurs par défaut dans ma racine.fichier plist (à l'aide de la propriété Valeur par défaut) pour YES
mais à chaque fois au lancement de l'application sur un périphérique ou le simulateur iOS toutes les valeurs vont NO
. Il a bien travaillé uniquement sur le premier lancer.
Je suis en récupérant les valeurs par défaut avec ce code (je fais quelque chose de mal ici?):
NSUserDefaults *localeDefaults = [NSUserDefaults standardUserDefaults];
BOOL ENWORDS = [localeDefaults boolForKey:@"localetime"];
source d'informationauteur Mc.Lover
Vous devez vous connecter pour publier un commentaire.
Le problème, c'est le type de
default Value
doit êtreboolean
passtring
😉 supprimer cette valeur et ajouter un autredefault Value
bien, de nouveauespérons que cela aide
La Valeur par Défaut est utilisé par des Paramètres.application à des fins d'affichage uniquement. Si vous ne modifiez pas la valeur dans l'application paramètres, rien n'est sauvegardé à NSUserDefaults.
Vous devez vous enregistrer les valeurs par défaut vous-même. Utiliser quelque chose comme cela dans
application:didFinishLaunchingWithOptions:
:Ce blog pourrait aider : http://greghaygood.com/2009/03/09/updating-nsuserdefaults-from-settingsbundle
tl;dr - jusqu'à ce que l'utilisateur ouvre la page de configuration puis les valeurs par défaut ne sont pas copiées dans votre application. C'est le comportement attendu par Apple.
Personnellement, je pense que c'est terrible. Cela signifie que vous devez définir vos paramètres par défaut dans le code juste au cas où l'utilisateur commence à votre application sans passer par la page paramètres du premier (ce qui sera vrai pour environ 99% de cas d'utilisation!)
Vous pouvez vérifier si la valeur a été définie par l'obtention de objectForKey et de vérifier s'il est nul.