从另一个方法中删除NSManagedObjectContext中的对象

我试图删除所有的对象,但我似乎无法使其工作。 我知道这个问题还有其他的问题,但是他们没有帮助。 我想要的是删除该方法中的部分和夹具实体中的所有对象。

- (void)refresh:(UIRefreshControl *)refreshControl { [refreshControl endRefreshing]; } 

这是我用另一种方法保存和获取我的对象的地方。

 NSManagedObjectContext *context = [self managedObjectContext]; for (int i=0; i <=fixtures.count-1; i++) { fixture = [NSEntityDescription insertNewObjectForEntityForName:@"Fixture" inManagedObjectContext:context]; [fixture setValue:[NSString stringWithFormat:@"%@",[[fixtures objectAtIndex:i] objectForKey:@"date"]] forKey:@"date"]; [fixture setValue:[[fixtures objectAtIndex:i] objectForKey:@"time"] forKey:@"time"]; [fixture setValue:[[fixtures objectAtIndex:i] objectForKey:@"home"] forKey:@"home"]; [fixture setValue:[[fixtures objectAtIndex:i] objectForKey:@"away"] forKey:@"away"]; [fixture setValue:[[fixtures objectAtIndex:i] objectForKey:@"league"] forKey:@"league"]; } for (int i=0; i <=sections.count-1; i++) { lolSection = [NSEntityDescription insertNewObjectForEntityForName:@"Section" inManagedObjectContext:context]; [lolSection setValue:[NSString stringWithFormat:@"%@",[[sections objectAtIndex:i] objectForKey:@"date"]] forKey:@"date"]; } NSManagedObjectContext *managedObjectContext = [self managedObjectContext]; NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"Fixture"]; self.theFixtures = [[managedObjectContext executeFetchRequest:fetchRequest error:nil] mutableCopy]; NSFetchRequest *fetchRequest2 = [[NSFetchRequest alloc] initWithEntityName:@"Section"]; self.theSection= [[managedObjectContext executeFetchRequest:fetchRequest2 error:nil] mutableCopy]; NSSortDescriptor *descriptor = [[NSSortDescriptor alloc] initWithKey:@"self" ascending:NO]; NSArray *descriptors = [NSArray arrayWithObject: descriptor]; NSArray* reverseTheArray = [[self.theSection valueForKey:@"date"] sortedArrayUsingDescriptors:descriptors]; reversedArray = [[reverseTheArray reverseObjectEnumerator] allObjects]; 

那么,到目前为止,你有什么尝试?

根据文件。

删除托pipe对象很简单。 您只需将其托pipe对象上下文发送给一个deleteObject: message,将要删除的对象作为parameter passing。

换句话说,使用一个有效的上下文,你可以说

 [aValidContext deleteObject:managedObjectYouWantToDelete]; 

关于你的问题,你需要

  1. 设置一个抓取请求来抓取Fixture项目
  2. 循环结果( NSArray )并执行删除操作

例如

 NSFetchRequest* request = // create the request here... NSError *error; NSArray *array = [aValidContext executeFetchRequest:request error:&error]; if (array == nil) { // Deal with error... } else { // loop the array performing deleteObject } // save to persistent store 

剩下的代码留给练习;)

编辑1

再读一遍你的问题, SectionFixture之间有什么关系? 如果它们是分离的实体,则应该为Section s执行前面的步骤。