2010-01-08 11 views

Répondre

0

Je pense que la question est de savoir si un objet particulier est stocké dans les valeurs par défaut de l'utilisateur, plutôt que de savoir si les données ont été sauvegardées ou non. Les valeurs par défaut de l'utilisateur sont simplement un dictionnaire, en termes d'API, de sorte que vous pouvez essayer de récupérer un objet pour une clé donnée. Si l'objet retourné n'est pas nil, alors quelque chose a évidemment été stocké pour cette clé. Inversement, si le retour est nil, rien n'a été stocké et vous devriez probablement charger un objet par défaut ou effectuer un autre type de contingence.

5

Le point de NSUserDefaults est qu'il enregistre vos données de manière transparente pour vous sans votre intervention, de sorte que vous ne pouvez pas demander si elle a enregistré les données ou non.

Toutefois, vous pouvez l'obliger à enregistrer en appelant [[NSUserDefaults sharedUserDefaults] synchronize];, ce qui renvoie un BOOL indiquant si la sauvegarde a réussi ou non. La documentation de cette méthode dit:

Parce que cette méthode est automatiquement invoqué à intervalles réguliers, utiliser cette méthode que si vous ne pouvez pas attendre pour la synchronisation automatique (pour exemple, si votre application est sur le point à exit) ou si vous voulez mettre à jour les valeurs par défaut de l'utilisateur à ce qui est sur le disque même bien que vous n'avez apporté aucune modification.

Questions connexes