Ios 核心数据实体findFirst每次都返回不同的实体,尽管只有一个实体

Ios 核心数据实体findFirst每次都返回不同的实体,尽管只有一个实体,ios,core-data,entity,restkit,Ios,Core Data,Entity,Restkit,我有一个核心数据模型,由一条有许多位置的轨迹组成。我也在使用RestKit。我获取线索的代码如下所示: Trail *trail = [Trail findFirst]; 我的问题是每次都会返回不同的轨迹。连续三次调用[Trail findFirst]返回: <Trail: 0xf489c70> (entity: Trail; id: 0xf489a60 <x-coredata://77BCA7AD-4C71-437D-8A7C-C047B8E64567/Trail/p1&g

我有一个核心数据模型,由一条有许多位置的轨迹组成。我也在使用RestKit。我获取线索的代码如下所示:

Trail *trail = [Trail findFirst];
我的问题是每次都会返回不同的轨迹。连续三次调用[Trail findFirst]返回:

<Trail: 0xf489c70> (entity: Trail; id: 0xf489a60 <x-coredata://77BCA7AD-4C71-437D-8A7C-C047B8E64567/Trail/p1> ; data: <fault>)

<Trail: 0xf476ca0> (entity: Trail; id: 0xf489110 <x-coredata://77BCA7AD-4C71-437D-8A7C-C047B8E64567/Trail/p1> ; data: <fault>)

<Trail: 0xf48c660> (entity: Trail; id: 0xf48c430 <x-coredata://77BCA7AD-4C71-437D-8A7C-C047B8E64567/Trail/p1> ; data: <fault>)
(实体:Trail;id:0xf489a60;数据:)
(实体:Trail;id:0xF48910;数据:)
(实体:Trail;id:0xf48c430;数据:)
如果我执行[Trail allObjects],我会看到一个单独的Trail项,它将在下次调用[Trail findFirst]时返回。如果我再次执行[Trail allObjects],我会看到一个不同的Trail对象,它将在下次调用[Trail first]时返回


这让我心烦意乱。CoreData每次如何返回不同的实体?

您看到的ID是错误的。重要的是
x-coredata://77BCA7AD-4C71-437D-8A7C-C047B8E64567/Trail/p1
,所有这些都显示相同的数字

您正在查看的ID是对象的地址。它们是不同的对象,但指向相同的底层核心数据对象


想象一个假设的数字对象。我创建了一个,然后把数字1放进去。我创建了另一个数字对象,并在其中加了一个1。对象是相等的(都包含1),但它们不相同(不同的对象具有不同的地址)。

您看到的ID是错误的。重要的是
x-coredata://77BCA7AD-4C71-437D-8A7C-C047B8E64567/Trail/p1
,所有这些都显示相同的数字

您正在查看的ID是对象的地址。它们是不同的对象,但指向相同的底层核心数据对象

想象一个假设的数字对象。我创建了一个,然后把数字1放进去。我创建了另一个数字对象,并在其中加了一个1。这些对象是相等的(都包含1),但它们不相同(具有不同地址的不同对象)