核心数据中的主键位置

时间:2014-02-27 10:20:29

标签: ios iphone database sqlite core-data

在CoreData中,我了解到了,

Core Data制作自己的主键 - 您不必添加一个。您可以使用

检索它

NSManagedObjectID *moID = [managedObject objectID];

现在我的问题是,假设我有3个数据,如果我从主键位置1中删除了一些内容并且我想添加一些新数据,它将添加哪个位置?那个位置是主键4吗?如果我想在位置添加这个新数据 - 主键1我应该怎么做?

2 个答案:

答案 0 :(得分:1)

托管对象ID用于跨多个托管对象上下文唯一标识托管对象。它不能用于按特定顺序保存对象。

要使托管对象保持良好定义的顺序,您必须添加自己的密钥属性 实体,并在获取请求的排序描述符中使用它。

答案 1 :(得分:1)

托管对象ID不是数据的主键 - 它是Core Data在内部使用的唯一引用,在我们的应用程序中用于通过使用该ID获取不同上下文中的对象。

从您的问题看来,您似乎正在尝试在特定位置添加对象。这不是objectID的用途。如果您想按特定顺序保存,则需要添加用于排序的属性,或使用有序关系来为您处理此事。