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.
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?" –
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? –