Question

La documentation de l'API NSUserDefaults a le message boolForKey: qui est décrit comme ceci -

boolForKey:

Renvoie la valeur booléenne associée à la clé spécifiée.

- (BOOL)boolForKey:(NSString *)defaultName

Valeur de retour Si une valeur booléenne est associée à DEFAULTNAME dans les paramètres utilisateur par défaut, cette valeur est renvoyée. Dans le cas contraire, le NO est retourné.

Étant donné que [[NSUserDefaults standardUserDefaults] boolForKey:@"some_Key"] redonne un NO peut être soit parce que la clé n'existe pas ou la clé existe et a une valeur de boolean NO. Comment peut-on différencier? A partir de maintenant, je ne peux éviter d'entrer dans cette situation en premier lieu.

Était-ce utile?

La solution

Vous utilisez les paramètres par défaut de l'utilisateur de manière incorrecte. Lors du lancement de votre application, vous êtes censé appeler -[NSUserDefaults registerDefaults:] avec un dictionnaire qui contient les valeurs par défaut pour toutes les préférences.

Ensuite, si l'utilisateur n'a pas fixé de préférence, -boolForKey renvoie la valeur par défaut.

Autres conseils

Utilisez la méthode -objectForKey: aussi. Cela vous indiquera si la clé existe.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top