我有一个 Bullet 对象和一个 List 对象。一个列表有很多项目符号,一个项目符号可以属于多个列表。
但我需要保证 Bullet 对象的顺序。例如,一个 List 对象应该始终按顺序包含 #1 Bullet A #2 Bullet B 和 #3 Bullet C。另一个列表(列表 B)可能具有相同的项目符号,但顺序不同,#1 Bullet B、#2 Bullet C 和#3 Bullet A。
NSSet 不存储顺序,Core Data 不允许数组。
我该怎么办?我可以在这里对属性做些什么吗?
编辑:听了下面的评论后,我意识到这是列表和项目符号之间的“多对多”关系......例如,一个项目符号(名称:“鸡蛋”)可以出现在列表(名称: “乳制品”)和列表(名称:“食品”)。
最佳答案
我会插入第三个实体,比方说 BulletsInList,它有一个属性,您可以在其中存储您的排序位置(1、2、3 等)。
您现在可以在 Bullet 和 BulletsInList 之间建立一种关系,而不是 List 和 Bullets 之间的关系(一个 BulletsInList 可以包含在多个 BulletsInList 中,一个 BulletsInList 恰好属于一个 Bullets)和另一个 List 和 BulletsInList 之间的关系(一个 List 可能有许多 BulletsInLists,一个 BulletsInList 正好属于一个 List)。
简而言之,BullettsInList 对象包含:1 个列表对象、1 个项目符号对象和 1 个数字属性用于您的职位。
关于ios - 如何用Core Data设计对象的 "ordering",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27091666/