【发布时间】:2017-12-11 01:18:54
【问题描述】:
平台
iOS 10、Xcode 8.3.3
背景
我已经构建了一个利用 Core Data 的 Notes 应用程序,我想在我的下一个应用程序中使用这个应用程序,该应用程序也将使用 Core Data。为简单起见,我们将下一个应用程序称为“ListApp”,将笔记应用程序称为“NotesApp”。这个 ListApp 有列表项,每个项都可以有一个或多个注释。
这是我到目前为止所做的:
- 从 NotesApp 中删除了所有不必要的文件并编译了“NotesApp 框架”。
- 将 NotesApp 框架链接到 ListApp。
- 为 ListApp 设计了核心数据模型。具体来说,我创建了一个名为“ListItem”的实体和一个名为“Note”的实体。 ListItem 与 Note 具有一对多的关系(一个列表项可以有多个注释)。 Note 实体包含一个“noteID”字段来引用 NotesApp 模型中的便笺,当然还有反向关系。
问题
我需要在 ListApp 模型中的实体和 NotesApp 模型中的实体之间建立“关系”。
我研究了配置,这似乎更适合将同一模型中的对象存储到不同的持久存储中,除非我缺少某些东西。所以,这没有帮助。
然后,我发现获取的属性可以用来在多个商店之间形成弱关系。所以,这也无济于事。
接下来,我在文档中发现有一个名为 NSManagedObjectModel.mergedModel(from:) 的方法,所以我假设这是可能的。或者也许这只是为了迁移?
这就是我卡住的地方。
原因
我不希望将 NotesApp 模型中的所有内容都重新设计为 ListApp 模型。我更喜欢将所有内容分开。
问题
有没有办法在不同模型中的两个实体之间建立关系?我是否应该在 ListItem 实体类中添加一个函数来手动获取 NotesApp 模型中的注释?我是在走正确的道路还是有更好的选择?
注意:我所说的“关系”是指能够调用 ListItem 实体中的属性来获取注释并以某种方式将特定注释“关联”到一个特定的 ListItem。
P.S.如果您知道任何陷阱、有任何一般性建议或知道任何阅读材料,请随时告诉我。
另外,我已经研究了这个话题几个小时,但我似乎找不到任何关于它的信息。我假设这是因为这是不可能的,这是一种糟糕的做法,或者我没有使用正确的关键字。
如果有人需要更多信息,请随时告诉我!
【问题讨论】:
标签: ios objective-c iphone swift core-data