我有一个问题,我试图解决我需要让一个对象与另一个对象多次相关的地方。目前,我在“序列”和“姿势”之间有一对多的关系。创建序列时,您一次将一批姿势添加到序列中。代码看起来像这样:
- (void)doneAddingItems {
NSMutableOrderedSet *saveSet = [NSMutableOrderedSet orderedSetWithOrderedSet:self.sequence.poses];
[saveSet addObjectsFromArray:self.posesToAdd];
self.sequence.poses = [NSOrderedSet orderedSetWithOrderedSet:saveSet];
[self.managedObjectContext save:nil];
[self.navigationController dismissViewControllerAnimated:YES completion:nil];
}
这对于独特的“姿势”列表非常有用,但显然你不能与同一个对象 TWICE 有关系,所以我不能制作如下序列:
PoseA -> PoseB -> PoseC -> PoseA -> PoseD
其他人如何处理这个问题?我正在考虑创建一个动态实体,该实体将检查序列中是否存在选定的姿势,如果存在,则复制该姿势,以便我们可以“引用它两次”。它们都将包含相同的信息,但将位于不同的索引处。我认为这可以解决我的问题,并且只需要我添加一个动态实体和一些代码来验证重复项并在删除序列时清理实体。
有人有更好的主意吗?