我有一个 xcdatamodel,其中包含一组内置于静态库中的实体。
我将这个静态库包含在一个项目中。我想在主项目中创建另一个模型,实体名为 Task。我想在实体中有一个属性,我可以在其中存储在静态库中创建的实体的 NSManagedObjectID
。使用 NSManagedObjectID
我可以轻松获取主存储并获取实体。
最后可能有许多任务实体引用一个 objectID。
这可能吗?我也明白这听起来像是一个关系模型,而 Core Data 不是,那么有没有更好的解决方案来处理这个问题?
谢谢
最佳答案
NSManagedObjectID
本身不符合编码标准。但是您可以获得对象 ID 的 URL 表示形式并存储它。像这样:
myObject.externalTaskURL = [[task objectID] URIRepresentation];
然后为了获取对象 ID 以检索它稍后引用的任务对象(psc
是您的 NSPersistentStoreCoordinator
其中 Task
实体存在):
NSManagedObjectID* taskID =
[psc managedObjectIDForURIRepresentation:myObject.externalTaskURL];
确保永远不要对临时托管对象 ID 执行此操作。
关于objective-c - 将 NSManagedObjectID 保存在 CoreData 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6881677/