27 votes

Le meilleur moyen de sauvegarder des données sur l'iPhone

J'écris une application iPhone et j'ai besoin de sauvegarder l'état de mon application (environ 5K).

Ma principale préoccupation est que les données persistent malgré les mises à niveau. Certaines des applications que j'utilise se sont clairement trompées, et je préférerais ne pas le faire!

30voto

Ben Gottlieb Points 59900

Pour enregistrer l'état, NSUserDefaults est le chemin à parcourir. Je pense que la plupart, sinon la totalité, des cas de suppression de données d'application après une mise à niveau sont dus à des problèmes sur l'AppStore. Ils peuvent être liés à des changements de format de données, mais si vous utilisez uniquement NSUserDefaults et des objets standard stockables par plist (NSString, NSDictionary, NSNumber, NSArray, NSNumber et primitives), vous devez être en sécurité.

10voto

Sirens Points 708

J'ai un moyen simple de le faire. Sauver:

     NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:@"TextToSave" forKey:@"keyToFindText"];
 

Charger:

 NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
NSString *textToLoad = [prefs stringForKey:@"keyToFindText"];
 

6voto

August Points 9726

Cela dépend vraiment de ce que vous faites et de vos besoins.

S'il s'agit d'une petite quantité de données, NSUserDefaults est un excellent moyen de procéder. Vous pouvez également enregistrer un dictionnaire ou un tableau dans le dossier Documents de votre application, puis recharger ce fichier au lancement.

SQLite est bien, mais à moins que vous ayez beaucoup de données que vous allez interroger, c'est un peu trop pour simplement sauvegarder l'état.

4voto

pixel Points 2842

J'utilise sqlite pour stocker toutes les données et préférences de l'application. Pour vous assurer que les mises à jour n'effacent pas les données, assurez-vous que le fichier sqlite est stocké dans le répertoire Documents de l'application, qui n'est pas remplacé par les mises à niveau. Certains des exemples de code ("SQLite Books" je pense) qu'Apple fournit ont du code pour gérer cela.

2voto

Iggy Points 1277

pour de petites quantités de données, NSUserDefaults est une solution parfaite, si vous avez besoin d'une interrogation ad hoc de données, sqlite est la solution. Ces deux solutions sont parfaites pour stocker des données sur l'appareil, si vous avez besoin de plus de flexibilité et de capacités, vous pouvez envisager des données distantes, c'est-à-dire des services Web et une base de données de serveur.

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