在CoreData中保存NSManagedObjectID

Leo*_*rdo 2 core-data objective-c nsmanagedobject

我有一个xcdatamodel,其中包含一组内置在静态库中的实体.

我在项目中包含了这个静态库.我想在主项目中创建另一个模型,实体名为Task.我想在实体中有一个属性,我可以在其中存储NSManagedObjectID在静态库中创建的实体.随着NSManagedObjectID我可以很容易地获取主存储和获取的实体.最后,可能有许多任务实体引用objectID.

可能吗 ?我也明白这听起来像一个关系模型,核心数据不是,所以有更好的解决方案来处理这个主题吗?

谢谢

Pey*_*loW 9

NSManagedObjectID本身没有编码兼容.但是您可以获取对象ID的URL表示并存储它.像这样:

myObject.externalTaskURL = [[task objectID] URIRepresentation];
Run Code Online (Sandbox Code Playgroud)

然后为了获取对象ID以检索它稍后引用的任务对象(psc是实体NSPersistentStoreCoordinator所在的位置Task):

NSManagedObjectID* taskID = 
        [psc managedObjectIDForURIRepresentation:myObject.externalTaskURL];
Run Code Online (Sandbox Code Playgroud)

确保永远不要对临时托​​管对象ID执行此操作.