2010-04-30 4 views
3

ManagedObjectContext에 reset 메소드를 사용하고 싶지 않습니다. 특정 엔터티에 대한 모든 개체를 제거하면되지만이를 수행하는 방법이 표시되지 않습니다. 특정 개체의 모든 개체를 선택하고 각 개체를 반복하고 삭제하면 작동하지만 매우 느립니다. 특정 개체의 모든 개체를 선택하고 각각에 걸쳐 반복하고 그들에게 삭제ManagedObjectContext에서 지정된 엔티티의 모든 객체를 삭제하는 방법

답변

7

거의 당신이 그것을 할 방법은 그

작동합니다.

+1

그게 전부예요? 어리석은. 리셋 방법은 밀리 세컨드 (millisecond)가 걸리지 만, 반복적 인 쓰레기는 수초가 걸릴 수 있습니다. –

+7

엔티티가 다른 엔티티와의 종속 관계가있는 경우 엔 엔티티를 관리해야합니다. 나는 이것이 그들이 관리 대상이라고 불리는 이유라고 확신합니다. 이것으로부터 약간의 오버 헤드가있을 수 있습니다. –

+0

와우. 멋진 태도. –

0

구출 카테고리! 다시.

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"]; 

카테고리 굉장하다.

관련 문제