2011-09-11 94 views
0

我试图让实体ID这样的:核心数据,如何让实体ID

NSLog(@"entity id: %@",[channel objectID]); 

但在这种情况下,ID是不是数字

输出:

2011-09-11 20:40:39.932 n[3591:207] entity id: 0x591f6f0 <x-coredata://4FE0AAD6-289E-404D-B81A-0FC0917BE025/Channel/p3> 

为什么没有回报3

回答

2

托管对象标识是URI的一种形式,它唯一标识托管对象驻留在特定的持久存储中。

它打破了如:

protocol://persistent-store-uuid/entity-name/object-num 

...因为你可以有存储在每个同一实体的对象很多持久性存储,而管理对象的ID必须包括商店。

通过将managedObjectID转换为其URI表示并将该属性设置为生成的URL,可以将managedObjectID保存为属性。

1

为什么要返回3? objectID返回一个NSManagedObjectID,它必须唯一标识您的对象。

+0

becouse另一个类,我有号码,例如此代码的工作 '[NSPredicate predicateWithFormat:@“包=%@”,[数据包的objectID]' –

+2

您没有所谓的objectID一个管理对象属性你?这是一个坏主意。 – jrturton

+1

我知道,但否则我不能。我尝试将通道对象设置为“like”表,如果通道已经存在到'like'表中,我不想再设置此对象 –