2009-10-08 7 views
3

Je crée un fichier SQLite sur Mac en utilisant Core Data, puis je le place dans mon application iPhone (GitHub project si je suis curieux). Je souhaite publier une mise à jour de l'application avec un fichier SQLite mis à jour. Le modèle sera les mêmes entités et attributs, il y aura juste plus de données. Je lance l'application en simulateur avec l'ancien fichier sqlite. Sortie. Remplacez le fichier sqlite par le nouveau dans xcode. Ajoutez NSMigratePersistentStoresAutomaticallyOption et NSInferMappingModelAutomaticallyOption aux options addPeristentStore. Ensuite, exécutez l'application à nouveau, mais l'application affiche uniquement les mêmes données du fichier d'origine.Remplacement du fichier SQLite de données de base dans l'application

J'ai également essayé de versionner le modèle selon les documents Apple et ce SO post et de renommer le fichier sqlite. Mais toujours pas de chance (je devine parce que le modèle est toujours le même?).

Des idées sur la façon dont je peux avoir l'application lire le nouveau fichier sqlite?

Répondre

3

Mon application iPhone Core Data utilise le code standard fourni lors de la création du projet et «Utiliser les données de base pour le stockage» est sélectionné.
Il basculera la base de données SQLite qui est utilisé lorsque je change la valeur de mon nom constant « DB_NAME » et reconstruire:

NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent:DB_NAME]]; 

NSError *error = nil; 
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]]; 
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) { 
Questions connexes