Posted By

mirage3d on 12/19/11


Tagged

cocoa coredata mac Objective-c NSFetchRequest NSManagedObjectContext NSManagedObject


Versions (?)

Clear all objects from an entity


 / Published in: Objective C
 

URL: http://stackoverflow.com/a/1383645/215494

How do you delete all objects in an entity in Core Data? It's not as simple or straightforward as it is in SQL/SQLite. here's one reasonably quick way...

taken from stackoverflow

  1. - (BOOL)clearEntity:(NSString *)entity
  2. NSManagedObjectContext *myContext = [(<#YourAppDelegate#> *)[[NSApplication sharedApplication] delegate] managedObjecContext];
  3. NSFetchRequest *fetchLLObjects = [[NSFetchRequest alloc] init];
  4. [fetchAllObjects setEntity:[NSEntityDescription entityForName:entity inManagedObjectContext:myContext]];
  5. [fetchAllObjects setIncludesPropertyValues:NO]; //only fetch the managedObjectID
  6.  
  7. NSError *error = nil;
  8. NSArray *allObjects = [myContext executeFetchRequest:fetchAllObjects error:&error];
  9. // uncomment next line if you're NOT using ARC
  10. // [allObjects release];
  11. if (error) {
  12. [[NSApplication sharedApplication] presentError:error];
  13. }
  14.  
  15. for (NSManagedObject *object in allObjects) {
  16. [myContext deleteObject:object];
  17. }
  18.  
  19. NSError *saveError = nil;
  20. if (![myContext save:&saveError]) {
  21. [[NSApplication sharedApplication] presentError:error];
  22. }
  23.  
  24. return (saveError == nil);
  25. }

Report this snippet  

You need to login to post a comment.