2011-10-03 4 views
3

J'ai une application (iPad & Mac Lion) qui utilise CoreData pour son stockage. L'application importe les données d'un certain nombre de périphériques matériels, décode les données en un certain nombre d'événements discrets et présente la liste des événements à l'utilisateur, qui a alors le choix de sélectionner les événements à enregistrer.Base de données Best Practice pour l'importation de données

Pour le moment, je crée un objet non-CoreData pour chaque événement, puis convertis ceux sélectionnés par l'utilisateur en entités CoreData à enregistrer dans le magasin. Cela signifie que j'ai essentiellement deux classes pour chaque objet; un objet CoreData géré et un autre objet non géré qui représente l'événement avant que l'utilisateur ne le sélectionne.

Je pense qu'il doit y avoir un meilleur, le code-overhead, (lire: plus facile à gérer) façon de le faire:

  • Puis-je créer base des entités de données sans les avoir enregistrés dans le magasin, puis seulement enregistrer ceux sélectionnés par l'utilisateur?
  • Ou existe-t-il une autre façon de structurer cela, en utilisant CoreData?

Répondre

1

C'est ce que Managed Object Contexts sont pour. :-) Créer un "contexte d'importation" séparé du contexte de données normal qui affiche les données réelles que l'utilisateur a dans sa "base de données". Créez tous les objets (et n'enregistrez pas) dans ce contexte, laissez l'utilisateur supprimer ceux qu'il ne veut pas, puis fusionnez les contextes une fois l'importation et l'enregistrement terminés.

+0

Ah ah! Grand merci. –

Questions connexes