如果您想通过 Core Data 使用多个实体,您需要为每个实体提供一个托管对象上下文吗?

Posted

技术标签:

【中文标题】如果您想通过 Core Data 使用多个实体,您需要为每个实体提供一个托管对象上下文吗?【英文标题】:If you want to use more than 1 entity using Core Data will you need a managed object context for each?he 【发布时间】:2014-04-23 14:32:00 【问题描述】:

我现在正在使用苹果 guid 学习核心数据,他们解释说:

“对于持久存储中的每个对象,最多可以有一个与给定上下文关联的对应托管对象”

这意味着如果我有一个笔记应用程序,并且我在我的数据模型文件中创建了两个实体,例如,名为“Note”和“NotePad”,而我从托管对象上下文中获取这些对象时,我将需要 2不同的托管对象上下文如下:

noteManagedObjecContext 对象

notePadManagedObjectContext 对象

并获取每个以对应匹配的对象?

谢谢

【问题讨论】:

note 和 notePad 是两个不同的实体,因此它们可以存在于同一个上下文中,不需要每个实体都有一个上下文...查看 Apple 示例代码,这应该对您有所帮助。对象表示“实例”,您的笔记“我的笔记 1”在每个上下文中只能在内存中有一个实例。 @VincentG 找到你了!谢谢朋友 【参考方案1】:

“对于持久存储中的每个对象,最多可以有一个与给定上下文关联的对应托管对象”

你误会了。这意味着对于数据存储中的任何对象,每个托管对象上下文将在内存中为该对象只有一个托管对象实例。

它与实体的数量无关。

【讨论】:

不,实体是托管对象的一种类型,就像一个类。然后,您就有了该实体类型的实例(托管对象实例)。

以上是关于如果您想通过 Core Data 使用多个实体,您需要为每个实体提供一个托管对象上下文吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Core Data 中多个实体的属性获取属性值?

为不相关的实体集使用和添加多个 Core Data 模型文件

是否有理由不在 Core Data 实体中使用相同的属性名称?

在单个 NSTableView (Core-Data) 中显示来自多个实体的数据

如何在 Swift 中使用 UISearchBar 和 NSFetchedResultsController 在 Core Data 上一次获取多个实体?

Core Data 中的实体中的实体 - Xcode