我想在我的托管对象实体模型中添加一个唯一的ID字段。
我知道Core Data不使用ID关系,但这是不同的。我需要一种方法将线程安全数据传递给不同的线程,以便新线程可以从该数据中获取托管对象。
它可以是任何格式,但理想情况下只是一个对象/变量/值。
我可以将CFUUID作为NSString添加到对象中,但我不确定这是否理想?我应该做些什么吗?
欢迎任何替代方案,或者甚至只是确认CFUUID是可行的方式。
答案 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];
....
....
});