我想将我的参考数据与我的核心数据模型中的用户数据分开,以简化我的应用程序的未来更新(因为,我计划将数据库存储在云上,并且不需要将参考数据存储在云上这是我的应用程序的一部分)。因此,我一直在寻找一种使用获取的属性对跨商店关系进行编码的方法。我还没有找到任何示例实现。
我有一个使用 2 种配置的核心数据模型:
数据模型配置 1:UserData(相对于用户的实体)
数据模型配置 2:ReferenceData(相对于应用程序本身的实体)
我为这两个配置设置了 2 个不同的 SQLite 持久存储。
UserData 配置(和存储)包含实体“用户”
ReferenceData 配置(和存储)包含实体“类型”和“项目”。
我想创建两个单向弱关系,如下所示:
“用户”具有唯一的“类型”
一个“用户”有许多“项目”
这是我的问题:
如何设置我的属性?
每个关系是否需要 2 个属性(一个用于存储唯一 ID,另一个用于访问我获取的结果)?
这种微弱的关系能否有序?
有人可以给我一个示例实现吗?
作为马库斯回答的后续:
浏览论坛和文档,我读到我应该使用我的实体实例的 URI 表示而不是 objectID。这背后的原因是什么?
// Get the URI of my object to reference
NSURL * uriObjectB [[myObjectB objectID] URIRepresentation];
接下来,我想知道,如何将我的对象 B URI (NSURL) 作为弱关系存储在我的父对象 A 中?我应该使用什么属性类型?我该如何转换?我听说存档...?
然后,稍后我应该以相同的方式检索托管对象(通过取消转换/取消归档 URIRepresentation)并从 URI 获取对象
// Get the Object ID from the URI
NSManagedObjectID* idObjectB = [storeCoordinator managedObjectIDForURIRepresentation:[[myManagedObject objectID] URIRepresentation]];
// Get the Managed Object for the idOjectB ...
最后但同样重要的是,我是否应该在我的实体 A 中声明两个属性,一个用于保持 URI 需求,另一个用于检索直接对象 B?
NSURL * uriObjectB [objectA uriObjectB];
ObjectB * myObjectB = [objectA objectB];
正如你所读到的,我真的很想念一些简单的例子来实现这些弱关系!我真的很感激一些帮助。