Delete/Reset all entries in Core Data?

后端 未结 30 3152
天命终不由人
天命终不由人 2020-11-22 16:00

Do you know of any way to delete all of the entries stored in Core Data? My schema should stay the same; I just want to reset it to blank.


Edit

30条回答
  •  [愿得一人]
    2020-11-22 16:17

    Use this

    +(NSArray *)fetchDataFromEntity:(NSString *)entityName context:(NSManagedObjectContext *)context
    {
        NSFetchRequest * fetchRequest =[[NSFetchRequest alloc] init];
        NSEntityDescription * CategoriesEntity = [NSEntityDescription entityForName:entityName inManagedObjectContext:context];
        [fetchRequest setEntity:CategoriesEntity];
    
        NSError * error;
        NSInteger count = [context countForFetchRequest:fetchRequest error:&error];
    
        if (count && count>0) {
    
            NSArray * fetchedObjects = [context executeFetchRequest:fetchRequest error:&error];
            if (fetchedObjects && fetchedObjects.count>0) {
    
                return fetchedObjects;
            }else
                return nil;
    
        }
        else
            return nil;
    }
    + (void)deleteObjectsOfArray:(NSMutableArray*)ary context:(NSManagedObjectContext *)context {
        for (NSManagedObject * obj in ary) {
            [context deleteObject:obj];
        }
        NSError *saveError = nil;
        [context save:&saveError];
    }
    + (void)deleteEntity:(NSString *)entityName context:(NSManagedObjectContext *)context {
        NSArray *listArray = [self fetchDataFromEntity:entityName context:context];
        [self deleteObjectsOfArray:[NSMutableArray arrayWithArray:listArray] context:context];
    }
    

提交回复
热议问题