多个 ManagedObjectContext

Posted

技术标签:

【中文标题】多个 ManagedObjectContext【英文标题】:More than one ManagedObjectContext 【发布时间】:2013-02-21 04:57:01 【问题描述】:

my managedObjectModel 我有几个实体。我认为可以为每个人创建 ManagedObjectContext ...如果是真的,我想知道:

    每个 ManagedObjectContext 都需要方法 - (NSManagedObjectModel *)managedObjectModel 吗?

    每个 ManagedObjectContext 都需要方法 - (void)saveContext 吗?

【问题讨论】:

您确定这是您想要做的吗?您能否更详细地编辑您的问题,说明您认为需要这样做的原因? @jrturton 对不起我的英语......一般来说,我想为每个实体使用 managedObjectContexts。如果我有 5 个实体,我将创建 5 个 managedObjectContexts 或者一个 managedObjectContexts 就足够了? 你的英文没问题,我想知道为什么你要这样做? 我认为如果我同时使用多个实体(使用 1 个 managedObjectContexts)会出现一些问题......可能是我错了...... 【参考方案1】:

您不需要这样做。单个托管对象上下文旨在处理多个实体,如果您的实体之间存在关系,则它们必须位于同一上下文中。

单独的上下文对于后台线程和临时工作区很有用,正如 here 所解释的那样。除非您需要,否则请坚持使用单一上下文。

【讨论】:

【参考方案2】:

再次阅读Core Data Basics 并查看一些使用Core Data 的sample code。

通常,

您有一个 NSManagedObjectModel,它类似于提供实体描述的架构。 您有一个 NSPersistentStoreCoordinator,它使用您的 NSManagedObjectModel 创建数据库 您有一个或多个 NSManagedObjectContext,它们是“便签本”,它们与您的 NSPersistentStoreCoordinator 对话并管理对象的上下文。把它想象成一种交易方式。

当您创建项目时,请务必选中“使用核心数据”,以便项目附带为您设置的大部分内容。

【讨论】:

以上是关于多个 ManagedObjectContext的主要内容,如果未能解决你的问题,请参考以下文章

LaTeX输入单个点横向多个点竖向多个点斜向多个点

多个网格、多个 VBO、多个 VAO、OpenGL 4.1

mysql添加多个字段&删除多个字段

部分之间的多个自定义 TableviewCell 上的多个自定义 UICollectionView

Symfony 2 与多个提供商、多个防火墙和多个主机的安全问题

表示多个组的多个列[重复]