`ordered`标志在多对多关系中做了什么?

时间:2011-09-08 09:44:23

标签: objective-c core-data flags

在寻找将有序多对多关系添加到我的核心数据模型的方法时,我对模型进行了尽可能少的更改,我注意到了ordered的多对多关系选项(见下面的截图)。哇,听起来不错,但它做了什么?

当我检查或取消选中它时,我的SQLite商店没有抱怨,我的应用程序仍然可以编译并运行正常。我想也许轻量级迁移可以处理更改,但从它的外观来看,我所有的自定义NSManagedObject子类都可以工作而不需要修改,所以发生了什么?

Screenshot of the Xcode 4 Data Model Inspector

总结问题:

  • ordered标志是否应该将多对多关系的数据类型从NSSet更改为NSArray
  • 或者只是修改集合的顺序会在顺序读取和写入时持续存在吗?
  • 或者我的假设是错的,是否完全是另一回事?
  • 是否有描述此功能的Apple文档页面?

非常感谢!

1 个答案:

答案 0 :(得分:11)

有序关系允许您为相关对象分配任意顺序。您可以将此视为从最喜欢的到最不喜欢的颜色排序,而不是按日期,标题等排序。

在添加此功能之前,通过创建位置属性来实现排序,然后在用户重新排序时手动更新项目的位置索引。如果您有大量项目,则使用内置订购可能比手动实施此项目更昂贵,如上所述。