首页 文章

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

提问于
浏览
8

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

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

Screenshot of the Xcode 4 Data Model Inspector

总结一下问题:

  • ordered 标志是否应该将多对多关系的数据类型从 NSSet 更改为 NSArray

  • 或者只是修改集合的顺序会在顺序读取和写入时持续存在吗?

  • 或者我对自己的假设是错误的,是否完全是另一回事?

  • 是否有描述此功能的Apple文档页面?

非常感谢!

1 回答

  • 11

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

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

相关问题