如果您想通过 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 实体中使用相同的属性名称?
在单个 NSTableView (Core-Data) 中显示来自多个实体的数据
如何在 Swift 中使用 UISearchBar 和 NSFetchedResultsController 在 Core Data 上一次获取多个实体?