111 votes

Les NSUserDefaults persistent-ils lors d'une mise à jour d'une application dans l'Appstore ?

Est-ce le cas ? Est-ce que les NSUserDefaults sont réinitialisés lorsque vous soumettez une mise à jour d'une application sur l'App Store, ou sont-ils réinitialisés ?

Mon application se bloque lorsqu'elle est mise à jour mais ne se bloque pas lorsqu'elle est entièrement téléchargée. J'essaie donc de déterminer ce qui pourrait être différent dans la session mise à jour et dans la session fraîchement téléchargée.

A la vôtre, Nick.

0 votes

Les fichiers dans Documents y Bibliothèque sera conservé comme le prétend la documentation : developer.apple.com/library/ios/#DOCUMENTATION/iPhone/

122voto

coneybeare Points 23802

Ils ne sont généralement pas réinitialisés, sauf si l'utilisateur supprime l'application. Pour les données de base, NSUserDefaults est le meilleur moyen de sauvegarder des données telles que les préférences, les dates, les chaînes de caractères, etc. Si vous cherchez à sauvegarder des images et des fichiers, le système de fichiers est un meilleur choix.

5 votes

Y a-t-il un endroit dans la documentation d'Apple où cela est mentionné ?

1 votes

Désolé - j'ai oublié de vous remercier pour votre réponse rapide ! - Si quelqu'un peut trouver un lien vers une forme quelconque de documentation Apple qui dit ceci, ce serait excellent..... Dans la documentation de NSUserDefaults, rien n'est dit à ce sujet, donc je pense que j'avais (à tort) supposé que les valeurs par défaut étaient effacées. C'est sûrement le moyen le plus sûr pour Apple de mettre à jour les applications !

0 votes

C'est peut-être le moyen le plus sûr, mais il serait incroyablement ennuyeux pour les utilisateurs de devoir redéfinir toutes leurs préférences à chaque mise à jour d'une application. J'ai généralement trois ou quatre mises à jour d'applications par jour ; je suis sûr que d'autres utilisateurs d'iPhone en ont encore plus. Effacer les préférences à chaque mise à jour rendrait mon iPhone inutilisable.

8voto

leon Points 525

Je pense que la réponse est OUI, elle persistera. Ceci est également documenté de manière exhaustive dans le chapitre Application Directory du Apple iPhone OS Programming Guide.

4voto

Sava Mazăre Points 1904
  1. Réponse directe à la question posée : OUI.
  2. Votre problème : Votre application se bloque à cause de problèmes de logique. Supposons que vous stockez un objet dans defaults et que l'application vérifie sa valeur au lancement (ou ailleurs). Dans votre mise à jour, vous pourriez changer la façon dont il est vérifié ou utilisé, par exemple, vous attendez une valeur, mais l'objet est nul, ou vice versa. Cela peut provoquer un SIGABRT ou un EXC_BAD_ACCESS.

3voto

Geri Points 3572

3voto

Bojan Bozovic Points 321

Si vous avez un modèle CoreData et que vous avez modifié quelque chose dans votre modèle et mis à jour, sans gérer la migration, c'est probablement la raison pour laquelle votre application se plante lors de la mise à jour....

0 votes

Je m'attendrais à ce qu'il s'agisse d'un cas :) et non d'un NSUserdefault.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X