how to remove all objects from Core Data

前端 未结 7 1431
我寻月下人不归
我寻月下人不归 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:35

    this is what I do to "reset" my data store:

    - (BOOL)resetDatastore
    {
        [[self managedObjectContext] lock];
        [[self managedObjectContext] reset];
        NSPersistentStore *store = [[[self persistentStoreCoordinator] persistentStores] lastObject]; 
        BOOL resetOk = NO;
    
        if (store)
        {
            NSURL *storeUrl = store.URL;
            NSError *error;
    
            if ([[self persistentStoreCoordinator] removePersistentStore:store error:&error])
            {
                [[self persistentStoreCoordinator] release];
                __persistentStoreCoordinator = nil;
                [[self managedObjectContext] release];
                __managedObjectContext = nil;
    
                if (![[NSFileManager defaultManager] removeItemAtPath:storeUrl.path error:&error])
                {
                    NSLog(@"\nresetDatastore. Error removing file of persistent store: %@",
                      [error localizedDescription]);
                    resetOk = NO;
                }
                else
                {
                    //now recreate persistent store
                    [self persistentStoreCoordinator];
                    [[self managedObjectContext] unlock];
                    resetOk = YES;
                }
            }
            else
            {
                NSLog(@"\nresetDatastore. Error removing persistent store: %@",
                  [error localizedDescription]);
                resetOk = NO;
            }
            return resetOk;
        }
        else
        {
            NSLog(@"\nresetDatastore. Could not find the persistent store");
            return resetOk;
        }
    }
    
    0 讨论(0)
提交回复
热议问题