对于一个嵌套关系,我会这样做:
NSMutableArray *allClusters = [NSMutableArray arrayWithArray:[form.clusters allObjects]];
但是我该怎么办?:
NSMutableArray *allQuestions = [NSMutableArray arrayWithArray:[form.clusters.questions allObjects]];
集群和问题都是一对多的关系。
欢迎任何帮助
对于一个嵌套关系,我会这样做:
NSMutableArray *allClusters = [NSMutableArray arrayWithArray:[form.clusters allObjects]];
但是我该怎么办?:
NSMutableArray *allQuestions = [NSMutableArray arrayWithArray:[form.clusters.questions allObjects]];
集群和问题都是一对多的关系。
欢迎任何帮助
NSSet *allQuestionsOfForm = [form valueForKeyPath:@"clusters.questions"];
编辑:
正如 glorifiedHacker 所说,上面的代码返回一个嵌套集。要获得展平集,请使用:
NSSet *allQuestionsOfForm = [form valueForKeyPath:@"clusters.@distinctUnionOfSets.questions"];
看起来您正在处理嵌套集,因此您可能只需要遍历父集以收集子集中的项目:
NSMutableArray *allQuestions = [NSMutableArray array];
for(Cluster *cluster in form.clusters) {
[allQuestions addObjectsFromArray:[cluster.questions allObjects]];
}
如果这不是您所追求的,那么您需要在原始问题中添加更多细节。