多个 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的主要内容,如果未能解决你的问题,请参考以下文章
部分之间的多个自定义 TableviewCell 上的多个自定义 UICollectionView