Ios “如何设计”;订购“;具有核心数据的对象的定义

Ios “如何设计”;订购“;具有核心数据的对象的定义,ios,objective-c,oop,core-data,nsset,Ios,Objective C,Oop,Core Data,Nsset,我有一个Bullet对象和一个List对象。一个列表有许多项目符号,一个项目符号可以属于许多列表 但我需要保证子弹物体的顺序。例如,列表对象应始终按该顺序具有#1个项目符号a#2个项目符号B和#3个项目符号C。另一个列表(列表B)可能有相同的项目符号,但顺序不同,#1项目符号B、#2项目符号C和#3项目符号a NSSet不存储排序,核心数据不允许阵列 我该怎么办?我可以在这里做点什么吗 编辑:听了下面的评论后,我意识到列表和项目符号之间是一种“多对多”的关系。。。例如,一个项目符号(名称:“鸡蛋

我有一个Bullet对象和一个List对象。一个列表有许多项目符号,一个项目符号可以属于许多列表

但我需要保证子弹物体的顺序。例如,列表对象应始终按该顺序具有#1个项目符号a#2个项目符号B和#3个项目符号C。另一个列表(列表B)可能有相同的项目符号,但顺序不同,#1项目符号B、#2项目符号C和#3项目符号a

NSSet不存储排序,核心数据不允许阵列

我该怎么办?我可以在这里做点什么吗


编辑:听了下面的评论后,我意识到列表和项目符号之间是一种“多对多”的关系。。。例如,一个项目符号(名称:“鸡蛋”)可以出现在列表(名称:“乳制品”)和列表(名称:“食品”)中

使用。它被映射到。

使用。它被映射到。

我将插入第三个实体,比如BulletsInList,其中包含一个属性,您可以在其中存储订购位置(1、2、3等)

现在,您可以在Bullet和BulletsInList(一个BulletsInList可以包含在多个BulletsInList中,一个BulletsInList只属于一个BulletsInList)以及List和BulletsInList之间建立一个关系,而不是List和BulletsInList之间的关系(一个列表可能有多个BulletsInList,一个BulletsInList只属于一个列表)


简而言之,BulletsInList对象包含:1个列表对象、1个项目符号对象和1个职位编号属性。

我将插入第三个实体,比如BulletsInList,其中包含一个属性,您可以在其中存储订购职位(1、2、3等)

现在,您可以在Bullet和BulletsInList(一个BulletsInList可以包含在多个BulletsInList中,一个BulletsInList只属于一个BulletsInList)以及List和BulletsInList之间建立一个关系,而不是List和BulletsInList之间的关系(一个列表可能有多个BulletsInList,一个BulletsInList只属于一个列表)


简而言之,BullettsInList对象包含1个列表对象、1个Bullet对象和1个位置的数字属性。

使用有序关系这是一个选项,但iCloud不允许这样做,因此如果您计划在iCloud上使用核心数据,请不要使用它们,否则将来会很痛苦(根据我自己的经验)


我推荐的解决方案是扩展List NSManagedObject,我们称之为List+Additions,在该扩展中,您可以使用一些方法来返回按需排序的NSSet。

使用有序关系这是一个选项,但iCloud不允许,因此如果您计划在iCloud上使用核心数据,请不要使用它们,否则会很痛苦将来(根据我自己的经验)


我推荐的解决方案是扩展List NSManagedObject,我们称之为List+Additions,在该扩展中,您可以使用一些方法来返回按需排序的NSSet。

很有意义,谢谢您……与使用下面的“有序关系”相比,这种方法有什么优势??有道理,谢谢……与使用以下“有序关系”相比,这种方法有什么优势??