2010-04-30 82 views

回答

7

选择的所有对象的特定实体,遍历每个并删除他们的作品

这几乎是你怎么做。

+1

就是这样?荒谬。重置方法需要几毫秒,而循环垃圾可能需要几秒钟的时间。 – 2010-04-30 20:33:08

+7

如果您的实体与其他实体存在依赖关系,则必须对其进行管理。我非常确定这就是为什么他们被称为管理对象。这可能会有一些开销。 – 2010-04-30 20:34:49

+0

哇。态度很好。 – 2010-04-30 20:49:36

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

类别是真棒。

相关问题