2010-09-30 3 views
3

Donc, je fais une application iPhone qui a juste un millier d'entrées que je lis à partir d'un fichier XML dans les données de base. Mais l'insertion de ces enregistrements prend environ 10 secondes sur l'appareil. C'est plutôt ridicule.IPhone: Pourquoi les insertions en bloc dans les données de base sont-elles si lentes?

Le schéma est très simple, juste une table. I.e., pas de relations ou quoi que ce soit.

Pour voir ce que je veux dire, vous pouvez simplement aller à:
1. Fichier -> Nouveau projet -> Navigation Based Application (assurez-vous que 'utiliser Core Data' est cochée)
2. maintenant à l'intérieur RootViewController.m aller à la « viewDidLoad » et à la fin de cette méthode ajouter:

for (int n = 0; n < 1000; n++) [self insertNewObject]; 

et il suffit d'exécuter l'application. Même en simulateur, cela prend 5 secondes et sur les appareils c'est deux fois plus lent. Des idées?

Répondre

2

Argh ... J'ai trouvé la raison. Je ne devrais pas sauvegarder le contexte après chaque insertion. Ma faute.

Questions connexes