核心数据FIFO? (先进先出)

时间:2015-09-18 17:47:18

标签: ios core-data

我坐在这个问题上困扰着我。我的核心数据运行正常,但是当它取出时,在我的情况下,用户,他们以不同的顺序返回。通常会使用标准唯一标识符,但核心数据不具备此功能。所以.... 我是否手动创建ID entity_property并以增量方式分配它,或者是"对象ID"按增量顺序制作;可能增加1,或只是随机ID?因此使我能够使用对象ID。

我的目标是按照用户插入的顺序获取我的获取数组。

由于

2 个答案:

答案 0 :(得分:2)

您需要自己的技术来生成唯一ID。将对象插入数据存储区时,在NSManagedObject子类的-awakeFromInsert中运行该代码,该代码被调用一次。您可以添加时间戳或递​​增计数器的值。

没有内置支持自动增量ID。您需要一个类变量,并在-awakeFromInsert中自行增加。您还必须在启动时保持该值,无论是作为其自己的实体还​​是在持久性存储的元数据中。

如果这些用户与其他实体之间存在一对多的关系,您可能会从使用有序关系中受益。

NSManagedObjectID在商店中是唯一的,但在保存NSManagedObjectContext时会更改(并且NSMOID从临时变为永久)。对其序列或结构模式没有任何承诺。它可以在托管对象模型迁移期间更改。因此,不要依赖它来控制任何事情。

答案 1 :(得分:0)

核心数据不会返回ORDERED数据。所以,如果你的数据是"字符串"或者"日期"然后,您可以在从代码数据中获取后按升序/降序对数据进行排序。