2009-11-29 8 views
3

J'expérimente Core Data, les fichiers plist, les fichiers plats et sqlite. Je n'arrive pas à me différencier en termes d'efficacité pour les petits ensembles de données. En termes de différences sur la surface (c'est-à-dire l'API), je connais la différence.Cocoa Touch Data Persistence

Mais ce que j'essaie de comprendre, c'est quel modèle de persistance est le mieux pour quelle situation.

+1

Cela dépend complètement de vos objectifs. Une meilleure question est: "Mon application a besoin de [liste de vos besoins], quelle est la meilleure approche?" –

+1

Pour les petits ensembles de données, l'efficacité est probablement principalement liée à «Qu'est-ce qui va m'aider à obtenir l'application plus rapidement? –

Répondre

4

Pour les petits ensembles de données, si vous avez besoin d'une capacité de lecture-écriture, vous devriez aller avec NSUserDefaults - si vous donne la puissance du stockage et de la récupération de valeur-clé sans trop de tracas.

Si vous avez besoin d'un accès en lecture seule, les fichiers plist sont une option viable, car ils gardent l'abstraction au concept de valeur-clé et offrent une API accessible pour travailler avec.

Des fichiers plats seraient recommandés si vous avez besoin d'un modèle de persistance différent de la valeur-clé, sinon cela signifierait simplement réinventer la roue. Sqlite correspondrait au cas où vos données sont organisées de manière relationnelle forte et au lieu de valeur-clé, vous préférez avoir la puissance de sql pour travailler directement avec vos données. Si votre jeu de données, aussi petit soit-il, serait un inconvénient inutile pour gérer le stockage et la récupération de bas niveau, alors vous pouvez choisir CoreData. Avec CoreData, le code peut extraire et manipuler des données à un niveau purement objet sans avoir à se préoccuper des détails de stockage et de récupération, vous serez donc plus concentré sur votre logique de domaine plutôt que sur la logique de stockage et de manipulation des données.