Core Data deleteObject: ne fonctionne pas?

J'utilise le code suivant:

+(void)deleteObject:(NSManagedObjectID*)oId { NSError *error; DFAppDelegate *temp = [DFAppDelegate new]; NSManagedObjectContext *context = [temp managedObjectContext]; NSManagedObject *obj = [context existingObjectWithID:oId error:&error]; [context deleteObject:obj]; } 

Mais cela ne semble pas fonctionner en conséquence. Lorsque je redémarre mon application sur un simulateur iOS, je peux à nouveau voir l'object dans la list. J'ai essayé d'imprimer l'object avec l'ID d'object donné et il renvoie l'object correct, mais l'object n'est pas définitivement supprimé de mon model de données de base. Aucune de mon entité n'est en relation avec une autre entité.

Quelqu'un peut-il m'expliquer ce qui ne va pas?

Merci.

EDIT: J'ai vérifié l'erreur, mais il ne montre aucune erreur.

Les modifications que vous apportez à un object NSManagedObjectContext sont temporaires tant que vous ne l'enregistrez pas. Essayez d'append ceci à la fin de votre méthode:

 if (![context save:&error]) { NSLog(@"Couldn't save: %@", error); } 

Le NSManagedObjectContext fournit un bloc-notes: vous pouvez faire ce que vous voulez avec vos objects, mais vous devez l'save à la fin. Si vous utilisez le projet Core Data par défaut, regardez cette méthode dans votre AppDelegate :

 - (void)saveContext { NSError *error = nil; NSManagedObjectContext *managedObjectContext = self.managedObjectContext; if (managedObjectContext != nil) { if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) { // Replace this implementation with code to handle the error appropriately. // abort() causes the application to generate a crash log and terminate. You should not use this function in a shipping application, although it may be useful during development. NSLog(@"Unresolved error %@, %@", error, [error userInfo]); abort(); } } }