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

epo*_*gee 8 flags core-data objective-c

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

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

Xcode 4数据模型检查器的屏幕截图

总结一下问题:

  • ordered标志是否应该将to-many关系的数据类型更改NSSetNSArray
  • 或者只是修改集合的顺序会持续在顺序读取和写入上吗?
  • 或者我错了我的假设,它完全是另一回事吗?
  • 是否有描述此功能的Apple文档页面?

非常感谢!

Sco*_*ten 11

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

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