1

对于一个嵌套关系,我会这样做:

NSMutableArray *allClusters = [NSMutableArray arrayWithArray:[form.clusters allObjects]];

但是我该怎么办?:

NSMutableArray *allQuestions = [NSMutableArray arrayWithArray:[form.clusters.questions allObjects]];

集群和问题都是一对多的关系。

欢迎任何帮助

4

2 回答 2

2
    NSSet *allQuestionsOfForm = [form valueForKeyPath:@"clusters.questions"];

编辑:

正如 glorifiedHacker 所说,上面的代码返回一个嵌套集。要获得展平集,请使用:

    NSSet *allQuestionsOfForm = [form valueForKeyPath:@"clusters.@distinctUnionOfSets.questions"];
于 2012-06-07T20:43:31.013 回答
1

看起来您正在处理嵌套集,因此您可能只需要遍历父集以收集子集中的项目:

NSMutableArray *allQuestions = [NSMutableArray array];

for(Cluster *cluster in form.clusters) {
    [allQuestions addObjectsFromArray:[cluster.questions allObjects]];
}

如果这不是您所追求的,那么您需要在原始问题中添加更多细节。

于 2012-06-07T20:24:19.410 回答