Question

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

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

Salut, Nick.

Était-ce utile?

La solution

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

Autres conseils

Je crois que la réponse est OUI, cela persistera. Ceci est également entièrement documenté dans le chapitre Répertoire d'applications du Guide de programmation du système Apple iPhone OS.

  1. Réponse directe à la question posée: OUI.
  2. Votre problème: Votre application est bloquée en raison de problèmes de logique. Supposons que vous stockiez un objet par défaut et que l'application vérifie sa valeur au lancement (ou ailleurs). Dans votre mise à jour, vous pouvez changer la façon dont il est vérifié ou utilisé, par exemple. vous attendez une valeur, mais l'objet est nul, ou inversement. Cela peut provoquer un SIGABRT ou EXC_BAD_ACCESS.

Si vous avez un modèle Core Data et que vous avez modifié quelque chose dans votre modèle et mis à jour, sans gérer la migration, c'est probablement pourquoi votre application se bloque lors de la mise à jour ...

J'ai une expérience similaire. Notre application stocke un numéro de version dans Settings.Bundle / Root.Plist. Ceci est affiché via l'application Réglages iPhone. Ce que nous constatons, c'est que lors d'une installation, le numéro de version est chargé à partir de l'ensemble d'applications. Par conséquent, le numéro de version est correct. Lors d'une mise à jour, le numéro de version ne change pas. Cela donne l'impression que l'utilisateur exécute une version précédente de l'application. Nous n’avons aucune logique liée au numéro de version, c’est juste pour l’affichage (le personnel du centre de contact pourrait s’en servir lors du diagnostic des pannes).

Notre expérience est que NSUserDefaults n'est pas effacé lorsqu'un utilisateur met à jour notre application, mais l'affichage des paramètres ne l'est pas non plus.

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