Как удалить все объекты для данного объекта из ManagedObjectContext - PullRequest
3 голосов
/ 01 мая 2010

Я не хочу использовать метод сброса для моего ManagedObjectContext. Мне нужно только удалить все объекты для конкретной сущности, но я не вижу никаких методов для этого. Выбор всех объектов для определенной сущности, циклический просмотр каждого из них и удаление их работают, но это очень медленно.

Ответы [ 2 ]

7 голосов
/ 01 мая 2010

Выбор всех объектов для конкретной сущности и зацикливание на каждом и удаление их работает

Вот как ты это делаешь.

0 голосов
/ 08 августа 2013

Категории на помощь!Снова.

NSManagedObjectContext + MyExtensions.h

@interface NSManagedObjectContext (MyExtensions)

-(void) deleteAllInstancesOfEntity:(NSString*) entity;

@end

NSManagedObjectContext + MyExtensions.m

#import "NSManagedObjectContext+MyExtensions.h"


@implementation NSManagedObjectContext (MyExtensions)

-(void) deleteAllInstancesOfEntity:(NSString*) entity {
     NSError* error;

     for (NSManagedObject* o in
            [self executeFetchRequest:[NSFetchRequest fetchRequestWithEntityName:entity]
                                error:&error]) {
          [o.managedObjectContext deleteObject:o];
     }
}

@end

Использование

NSManagedObjectContext *myMOC = ...;
[myMOC deleteAllInstancesOfEntity:@"SmellyCheese"];

Категории являются удивительными

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...