我对此很新,并假设我遗漏了一些非常简单的东西,我已经尝试过这个网站以及我可以搜索的任何地方,但没有找到直截了当的答案。
我的情况......
我的模特可以有很多健美操实体,当然可以包含很多套。
我有一个健美操细节控制器,它使用取指令来拉取所有集数据并显示它。使用下面的代码,我的详细信息视图可以正常工作。
问题是,如果我创建并输入另一个健美操详细信息视图,我的提取当然会从所有健美操实体中提取所有Set实体,我当然只想拉取我正在交互的健美操ID的集合用。
那么如何在我的获取请求中提取与1个健美操ID相关的所有集合?
- (void)fetchSets
{
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Set"];
NSString *cacheName = [@"Set" stringByAppendingString:@"Cache"];
NSSortDescriptor *sortDescriptor = [NSSortDescriptor sortDescriptorWithKey:@"setNumber" ascending:YES];
[fetchRequest setSortDescriptors:@[sortDescriptor]];
self.fetchedResultsController = [[NSFetchedResultsController alloc]initWithFetchRequest:fetchRequest managedObjectContext:self.calisthenic.managedObjectContext sectionNameKeyPath:nil cacheName:cacheName];
NSError *error;
if (![self.fetchedResultsController performFetch:&error]) {
NSLog(@"Fetch failed: %@", error);
}
}
答案 0 :(得分:3)
您可以使用NSPredicate根据作为健美操的父对象过滤获取请求。
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"calisthenic == %@", calisthenic]
[fetchRequest setPredicate:predicate];
上面一行假定父母的属性称为健美操。
或者,如果您为健美操和集合创建了模型文件(NSManagedObject的子类),您可以直接获取父健美操对象并直接获取集合。
calisthenic.sets
返回NSSet。
请查看以下有关如何生成模型文件的教程:Getting started with Core Data