2009-06-24 3 views
1

Je développe une application de bureau Mac OS X qui enregistre ses données très simples dans SQLite avec Core Data et une application mobile compagnon pour iPhone qui a simplement besoin de lire les données de l'application de bureau. Bien qu'ils partagent le même modèle d'objet géré lorsque je charge la base de données SQLite sur l'application mobile, les données prennent plusieurs secondes pour migrer les données. Je voudrais vraiment éviter cette longue attente car elle semble liée linéairement à la taille du fichier SQLite.Migration des données de base vraiment lent, pourquoi cela arrive-t-il?

Pourquoi les données du même modèle objet géré ont-elles même besoin de migrer?

Est-ce que quelqu'un connaît un moyen d'éviter de devoir migrer?

+2

Comment savez-vous qu'il migre? Avez-vous un dialogue? La migration n'aura lieu que si vous l'activez explicitement (voir Guide de gestion des versions et de la migration des données de base). Si votre modèle n'a pas changé, aucune migration n'est requise, alors peut-être que quelque chose d'autre se produit. – Hunter

+0

Bonne question. Je l'active parce qu'il ne chargera pas le magasin autrement. Je suis assez certain qu'il migre parce que j'ai profilé le long temps de chargement en utilisant Shark. – tmh

Répondre

0

J'ai découvert ce qui causait ce problème. Bien qu'il soit probablement très évident que je vais raconter si je l'espère personne d'autre ne commettez pas cette erreur ...

J'avais deux modèles distincts d'objets gérés dans mon projet. Avoir plus d'un semble forcer Core Data à essayer de migrer pour déterminer quelles données correspondent à quelle MOM.

Comme solution, j'ai pu fusionner manuellement les modèles afin que les deux sources de données peuvent être représentées avec la même MOM.

Questions connexes