2010-05-02 6 views
0

J'ai 4 catalogues de base de données dans mon application, je vais changer les quatre catalogues. Lorsque je démarre l'application, je lis le NSUserDefaults et essaie de charger le catalogue par défaut dans la mémoire, mais dans la première fois cela ne se produit pas. Au lieu de cela, j'obtiens des valeurs NULL retournées la première fois juste parce que la connexion DB n'est pas réussie pour une raison inconnue, le débogueur est incapable d'y aller aussi.iphone sqlite questions de démarrage de l'application

Mais l'application démarre la prochaine fois, les valeurs sont récupérées avec succès.

S'il vous plaît aider

Répondre

1

Si vous essayez de chercher des données nécessaires à partir des paramètres utilisateur par défaut, il pourrait ne pas être là la première fois que vous exécutez l'application. Vous avez probablement besoin de créer un ensemble par défaut des paramètres par défaut (heh) en utilisant:

-[NSUserDefaults registerDefaults:]

... avant vous interrogez les paramètres utilisateur par défaut pour toute valeur.

De User Defaults Programming Topics

Le domaine d'enregistrement est un ensemble de par défaut fourni par l'application qui sont utilisés à moins qu'un utilisateur ne les remplace (les « par défaut par défaut » ou « réglages d'usine »). Par exemple, la première fois que vous exécutez Xcode, il n'y a pas de valeur IndexOnOpen enregistrée dans votre base de données par défaut . Par conséquent, Xcode enregistre une valeur par défaut pour IndexOnOpen dans le champ NSRegistrationDomain en tant que valeur «catch all» . Xcode peut ensuite supposer qu'un objet NSUserDefaults a toujours une valeur à renvoyer pour la valeur par défaut, ce qui simplifie l'utilisation des valeurs par défaut utilisateur.

Vous définissez les valeurs par défaut de NSRegistrationDomain par la méthode registerDefaults :.

+0

Merci beaucoup TechZen, C'est un bon aperçu par vous. A beaucoup aidé – Futur

Questions connexes