Comment supprimer tous les objets de mon magasin persistant dans les données de base?
J'ai des Données de Base de travail dans mon application. Donc, j'ai récupérer un fichier XML, analyser les données dans le modèle d'objets et de les insérer dans la base de données. Ils sont enregistrés dans le système de persistance et je peux y accéder lorsque je relance l'application. Cependant, je veux être en mesure d'actualiser les données dans le système de persistance à volonté, donc je dois d'abord supprimer les objets de la boutique. Est-il une simple méthode pour cela?
Grâce
J'ai trouvé cette solution:
[managedObjectContext lock];
[managedObjectContext reset];//to drop pending changes
if ([persistentStoreCoordinator removePersistentStore:persistentStore error:&error])
{
NSURL* storeURL = [NSURL fileURLWithPath:[self pathForPersistentStore]];
[[NSFileManager defaultManager] removeFileAtPath:[storeURL path] handler:nil];
[self addPersistentStore];//recreates the persistent store
}
[managedObjectContext unlock];
source d'informationauteur conorgriffin
Vous devez vous connecter pour publier un commentaire.
Voici ce que j'ai fait nettoyer ma Base de Données entièrement. Il fonctionne parfaitement. C'est si vous avez un magasin persistant qui est probablement le cas si vous n'avez pas ajouter un plus manuellement. Si votre managedObjectContext a le même nom qu'ici, vous pouvez simplement copier/passé, il devra travailler.
swift version de @Nicolas Manzini réponse:
@Nicolas Manzini réponse que j'ai écrit un Swift version 2.1 avec peu d'améliorations. J'ai ajouté une extension à
NSManagedObjectContext
. Code complet ci-dessous:Vous pourriez faire une boucle par tous les objets et de les supprimer en faisant ceci:
Si vous souhaitez supprimer tous les objets, il est probablement le plus rapide pour supprimer les stocker puis de les recréer le CoreData pile.
Corbeille de votre fichier de données et le refaire.
Il y a un la fonction
Selon La WWDC 242vous pouvez l'utiliser pour effacer une base de données.
Il y a aussi un
func replacePersistentStore
qui est de remplacer la base de données sélectionnée.Le moyen le plus rapide d'abandonner tout est à envoyer votre géré contexte de l'objet de la
réinitialiser
message.