ios - 核心数据先进先出? (先进先出)

标签 ios core-data

我正被这个问题困扰着。我的核心数据工作正常,但是当它获取用户时,就我而言,他们会以不同的顺序返回。通常会使用标准的唯一标识符,但核心数据没有这个。所以.... 我是手动创建一个 ID entity_property 并递增分配它,还是按递增顺序创建“对象 ID”?可能增加 1,或者只是随机 ID?因此使我能够使用对象 ID。

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

谢谢

最佳答案

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

没有对自动增量 ID 的内置支持。您将需要一个类变量,并在 -awakeFromInsert 中自行递增它。您还必须在发布期间保留该值,作为其自己的实体或在持久存储的元数据中。

如果这些用户与某个其他实体存在一对多关系,您可能会受益于使用有序关系。

NSManagedObjectID 在商店中是唯一的,但会在保存 NSManagedObjectContext 时发生变化(并且 NSMOID 从临时变为永久)。没有关于其构建顺序或模式的 promise 。它可以在托管对象模型迁移期间发生变化。所以不要依赖它来控制任何你需要控制的东西。

关于ios - 核心数据先进先出? (先进先出),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32658101/

相关文章:

ios - regionDidChangeAnimated 不工作

ios - 如何使用 Keychain 保存密码,如 GenericKeychain 示例代码

ios - 按与动态位置的距离过滤核心数据实体

ios - 将 NSManagedObject 复制到 Swift 中的临时 NSManagedObject

swift - 使用 Core Data 获取、更新和保存记录

ios - 以编程方式推送到导航堆栈中的 View Controller [2],然后展开到 [1]

ios - 如何编码图像base64格式

ios - 更改 UIImageView 的位置 - 为什么我得到 "request for member error"

iOS:使用混合的用户数据更新预加载的数据库

cocoa - 如何复制 Core Data 托管对象?