关于上面的关系图,早些时候,我在 Assignment 和 Question 实体之间有太多的关系,这被打破以解决问题排序问题。
现在,Assignment 与 Question 的关系是通过连接表 AssignmentQuestion。
这里的想法是根据 AssignmentQuestion 表的 questionOrderIndex 属性对问题进行排序。
我正在通过 NSFetchResultController 获取作业问题。我已经写了一个谓词来相应地获取问题。但由于我希望基于 questionOrderIndex 对问题进行排序,因此我通过问题实体的排序描述符的排序键是 assignmnetQuestion.questionOderIndex。
但是使用这个排序键,我得到一个异常:“Exception = to-many key not allowed here”。经过调查,我发现这是因为 Question 到 AssignmentQuestion 表的“一对多”关系。
我的问题是:
1)如何根据questionOrderIndex设置排序描述符的排序键?
2)我们真的需要在核心数据中有一个连接表来按顺序对问题进行排序吗?
获取问题的谓词:
NSString *predicateString = [NSString stringWithFormat:@"self.evaluationQuestion.assignmentEvaluation.assignmentId == %@", @"1"];