我之间有一对多的关系:
Question<<---->Section
一节有很多问题。一个问题有一个部分。
我现在创建一个NSFetchedResultsController
来将所有问题分成UITableView-Sections。
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"MJUQuestion"];
NSSortDescriptor *sortByName = [NSSortDescriptor sortDescriptorWithKey:@"title" ascending:YES];
[fetchRequest setSortDescriptors:[NSArray arrayWithObject:sortByName]];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc]
initWithFetchRequest:fetchRequest
managedObjectContext:context
sectionNameKeyPath:@"section.title"
cacheName:nil];
现在所有的问题都分成了相应的部分,这些部分有效,但并不完全符合我的要求。
我不想要所有部分的问题,但我想要特定部分的所有问题。
部分被分成几个部分:
Section<<----->Category
我只想要属于特定类别的部分的问题。
如果我为该类别的部分做NSFetchedResultsController
,我会添加一个类似
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"category == %@", category];
[fetchRequest setPredicate:projectPredicate];
但由于情况并非如此,我希望将它们作为章节分隔符,我不确定如何正确修改我的NSFetchRequest
。
那么我如何修改我的NSFetchRequest
,我得到一个特定子节的问题,这些部分是UITableView-Section分隔符?
提前致谢。
答案 0 :(得分:2)
你快到了。您需要更新谓词并使用关键路径:
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"section.category IN %@", categoryArray];
这会导致请求检查每个问题并查看其部分的类别是否在数组中。这会将您过滤到类别的子集。