2010-09-18 4 views
5

J'ai une application utilisant CoreData comme un mécanisme de stockage de données et l'application a besoin de certaines données initiales à configurer. Y a-t-il des recommandations/quoi/comment faites-vous pour mettre en place les données initiales?Comment faire une configuration initiale de la configuration des données avec CoreData?

Actuellement, je fais de la manière suivante (lorsque l'application démarre pour la 1ère fois):

SomeEntity *newEntity=[NSEntityDescription insertNewObjectForEntityForName:@"SomeEntity" inManagedObjectContext:context]; 
[newEntity setCode:@"a-code"]; 
[newEntity setName:@"a-name"]; 
... 
[context save:nil]; 

Je n'aime pas cette approche pour 2 raisons:
1) il est si ennuyeux et erreur -prone si vous avez besoin de plus de 10 instances d'entités pour plus d'une entité de type
2), il peut prendre un certain temps pour le démarrage initial

Dans des applications précédentes en utilisant SQLite je lié juste ma première base de données SQLite dans la app et, si nécessaire pour modifier des données, déplacé la databa se dans le répertoire Documents. Y a-t-il une approche similaire pour CoreData?

Répondre

6

C'est exactement ce que vous feriez avec les Core Data. Utilisez votre application pour créer les données comme vous le souhaitez, puis téléchargez les données depuis l'appareil. Vous trouverez un fichier SQLite dans le répertoire Documents (qui est l'emplacement par défaut). Ajoutez le fichier SQLite à votre projet en tant que ressource. Il sera copié avec votre application. Ensuite, tout ce que vous devez faire est d'écrire du code pour déterminer si un fichier existe déjà dans le répertoire Documents au démarrage. Sinon, vous pouvez copier le fichier de l'ensemble de votre application dans le répertoire Documents et Core Data l'ouvrira. Vous voulez juste vous assurer de le faire avant que le NSPersistentStoreCoordinator ne soit configuré.

+0

Merci beaucoup, ça a marché pour moi! – Arts

Questions connexes