我有一个xcdatamodel,其中包含一组在静态库中构建的实体。
我在项目中包含了这个静态库。我想在主项目中创建另一个模型,实体名为Task。我想在实体中有一个属性,我可以在其中存储在静态库中创建的实体的NSManagedObjectID
。使用NSManagedObjectID
,我可以轻松获取主存储并获取实体。
最后,可能有许多任务实体引用objectID。
有可能吗?我也明白这听起来像是一个关系模型,核心数据不是,所以有更好的解决方案来处理这个主题吗?
感谢
答案 0 :(得分:9)
NSManagedObjectID
本身不符合编码规范。但是您可以获取对象ID的URL表示并存储它。像这样:
myObject.externalTaskURL = [[task objectID] URIRepresentation];
然后,为了获取对象ID以检索任务对象,它稍后引用(psc
是NSPersistentStoreCoordinator
实体所在的Task
:
NSManagedObjectID* taskID =
[psc managedObjectIDForURIRepresentation:myObject.externalTaskURL];
确保从不对临时托管对象ID执行此操作。
答案 1 :(得分:0)
您可以将托管对象ID作为NSURL存储在可转换属性中。