2

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

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

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

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

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

4

1 回答 1

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];
    ....
    ....
  });
于 2013-01-14T10:58:58.847 回答