how to remove all objects from Core Data

前端 未结 7 1447
我寻月下人不归
我寻月下人不归 2020-12-09 23:04

how can I remove all objects? I know I can remove one by

[managedObjectContext deleteObject:objToDelete];

is it possible to delete all wit

7条回答
  •  生来不讨喜
    2020-12-09 23:23

    This function removes the current SQLite db file from disk and creates a new one. It's much faster than any iterative delete.

    -(void)deleteAndRecreateStore{
            NSPersistentStore * store = [[self.persistentStoreCoordinator persistentStores] lastObject];  
            NSError * error;    
            [self.persistentStoreCoordinator removePersistentStore:store error:&error];
            [[NSFileManager defaultManager] removeItemAtURL:[store URL] error:&error];
            __managedObjectContext = nil;
            __persistentStoreCoordinator = nil;
            [self managedObjectContext];//Rebuild The CoreData Stack  
    }
    

    If you want to call this outside Application Delegate (assuming boilerplate CoreData integration) you can use this to get a reference to your app delegate:

    YourAppDelegate *appDelegate = (YourAppDelegate *)[[UIApplication sharedApplication] delegate];
    

    Don't forget to import the header.

提交回复
热议问题