2010-07-28 6 views
1

Mon application iPhone utilise Core Data et une base de données SQLite; les versions sont suivies en utilisant SVN. L'ajout de données à la base de données n'est pas reflété dans l'application. Je m'assure que je supprime le projet du simulateur et que la nouvelle base de données est ajoutée en tant que fichier au projet. Je soupçonne que les données sont en cache dans un autre endroit.Base de données SQLite mise en cache en raison de SVN

S'il vous plaît noter, SVN ne montre aucun changement à la base de données, même lorsqu'ils sont modifiés directement. En outre, si je copie et colle le projet dans un nouveau dossier, supprime les dossiers svn cachés, supprime les dossiers de construction, édite la base de données, supprime le projet du simulateur, puis compile et exécute, cela fonctionne la première fois. Après cela, les données sont de nouveau mises en cache dans un emplacement inconnu.

Toutes les idées où cela pourrait être?

MISE À JOUR: La solution à ce devait quitter mon client SVN (versions). Je ne suis toujours pas sûr de la façon dont cela a affecté les mises à jour de la base de données; Je ne pense pas que cela bloquerait ou annulerait les changements. Je suis maintenant capable de modifier et d'enregistrer les modifications.

Merci à tous pour votre aide.

Répondre

2

Peut-être plus d'un certain nombre de choses vont mal ici. Si vous avez ajouté la base de données SQLite à votre projet par référence, et si vous n'avez apporté aucune modification au code, lorsque vous cliquez sur "Générer", la ressource de base de données modifiée ne sera pas copiée. Fondamentalement, Xcode a des problèmes de longue date à détecter quand les ressources (référencées) ont changé. Faire une construction propre est votre option nucléaire, car en fonction de votre temps de compilation, cela peut prendre un certain temps. Une meilleure option consiste simplement à supprimer le bundle .app du répertoire de construction. Cela ne prend pas beaucoup de temps pour reconstruire Xcode, mais si vous avez beaucoup de ressources, cela peut prendre un certain temps. La meilleure option (celle que j'utilise) est de laisser un fichier "fictif" au niveau racine du dossier inclus par référence (disons que c'est un fichier texte vide), et quand je mets à jour une ressource, je vais changer le fichier fictif, annulez la modification et cliquez sur Enregistrer (dans Xcode). Cela déclenche quelque chose dans Xcode pour parcourir récursivement ce répertoire inclus pour voir si quelque chose a changé.

Tout cela mis à part, si vous modifiez le fichier DB, et SVN vous dit que vous ne l'avez pas fait des modifications, vous avez un autre problème en cours. En termes simples, êtes-vous certain que le fichier DB a déjà été ajouté et archivé dans SVN, SVN le sait donc? Et êtes-vous certain d'éditer le même fichier que celui que vous vérifiez dans SVN?

+0

Merci pour la réponse. J'ai nettoyé et nettoyé toutes les cibles. J'ai également essayé de supprimer le fichier .app et de recompiler. J'ai les mêmes résultats. SVN semble seulement savoir quand le fichier a été supprimé. L'édition de la base de données n'affiche aucune modification. J'ai essayé vos suggestions à propos de la sauvegarde en xCode, même édité une ligne de code et fait, les résultats étaient toujours les mêmes. S'il vous plaît noter, le même comportement se produit dans une copie du projet sans les dossiers SVN qui me fait soupçonner que SVN ne peut pas être le coupable. –

+0

Comment ajoutez-vous la ressource? Par référence ou non? Y a-t-il une autre ressource avec le même nom? Existe-t-il un processus avant ou après la construction qui fait quelque chose avec la ressource? –

+0

Je fais glisser le db dans le projet xcode dans un dossier. Je clique sur "copier si nécessaire". Il affiche la base de données dans le répertoire du projet avec .xcodeproj –

0

Se pourrait-il que la base de données soit ailleurs? Avez-vous essayé d'ouvrir la base de données manuellement pour voir si les bons enregistrements sont là?

Questions connexes