【发布时间】:2014-12-03 19:39:51
【问题描述】:
我无法根据我的数据模型配置创建 NSPredicate 对象。
我有 2 个实体,一个叫 Bob,一个叫 Fred。 Bob 与 Fred 有一个称为“hasFreds”(反面是 hasBobs)的多对多关系,并且 Fred 有一个 BOOL 类型的属性 hasEaten。
我想获取 Bob 的列表,其中每个 Bob 至少有一个 Fred,hasEaten=YES。如果 hasEaten=YES 没有 Fred,我想返回所有没有 Fred 的 Bob。
这是我到目前为止所拥有的,但它并不完全有效(它不符合“如果没有带有 hasEaten=YES 的 Fred,我想返回所有没有 Fred 的 Bob”条件):
predicate1 = [NSPredicate predicateWithFormat:
@"(SUBQUERY(hasFreds, $fred, $fred.hasEaten = %@).@count > 0)"
,@YES];
fr = [NSFetchRequest fetchRequestWithEntityName:@"Bob"];
fr.sortDescriptors = @[[NSSortDescriptor sortDescriptorWithKey:@"name" ascending:NO selector:@selector(compare:)]];
fr.predicate = predicate1;
NSFetchedResultsController *fetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fr managedObjectContext:[[self appDelegate] managedObjectContext] sectionNameKeyPath:nil cacheName:nil];
fetchedResultsController.delegate = self;
【问题讨论】:
标签: core-data many-to-many nspredicate nsfetchedresultscontroller