核心数据对象唯一ID

时间:2013-01-14 10:52:35

标签: ios objective-c core-data

我想在我的托管对象实体模型中添加一个唯一的ID字段。

我知道Core Data不使用ID关系,但这是不同的。我需要一种方法将线程安全数据传递给不同的线程,以便新线程可以从该数据中获取托管对象。

它可以是任何格式,但理想情况下只是一个对象/变量/值。

我可以将CFUUID作为NSString添加到对象中,但我不确定这是否理想?我应该做些什么吗?

欢迎任何替代方案,或者甚至只是确认CFUUID是可行的方式。

1 个答案:

答案 0 :(得分:3)

@Carl Veazey提到它: NSManagedObjectID正是您要搜索的内容!

这里有一个简短的片段:

  NSManagedObject *objectInMainContext = ....;

  NSManagedObjectID *objectID = objectInMainContext.objectID;
  dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

    NSManagedObjectContext *newThreadContext = [[NSManagedObjectContext alloc] initWithConcurrencyType: ... ];    
    [newThreadContext objectWithID: objectID];
    ....
    ....
  });