how to remove all objects from Core Data

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

    I used stifin's code and updated it to use -performBlockAndWait:

    - (BOOL)reset
    {
        __block BOOL result = YES;
    
        [[self mainContext] performBlockAndWait:^{
            [[self mainContext] reset];
    
            NSArray* stores = [[self persistentStoreCoordinator] persistentStores];
    
            _mainContext = nil;
            _persistedContext = nil;
    
            for(NSPersistentStore* store in stores) {
                NSError* error;
    
                if(![[self persistentStoreCoordinator] removePersistentStore:store error:&error]) {
                    debuglog(@"Error removing persistent store: %@", [error localizedDescription]);
                    result = NO;
                }
                else {
                    if(![[NSFileManager defaultManager] removeItemAtPath:store.URL.path error:&error]) {
                        debuglog(@"Error removing file of persistent store: %@", [error localizedDescription]);
                        result = NO;
                    }
                }
            }
    
            _persistentStoreCoordinator = nil;
        }];
    
        return result;
    }
    

提交回复
热议问题