Core data 为不相关的实体集使用和添加多个核心数据模型文件

Core data 为不相关的实体集使用和添加多个核心数据模型文件,core-data,ios7,icloud,core-data-migration,Core Data,Ios7,Icloud,Core Data Migration,这里是学生飞行员。我相信我可以有两个托管对象模型(单独的.xcdatamodeld文件),表示两组不相关的实体/属性/关系(例如,员工/部门的模型1和产品/客户的模型2),并通过 +(NSManagedObjectModel *)modelByMergingModels: 轻量级迁移将在每个模型中工作。(正确吗?)我只想使用一个商店,这是为了提高效率而推荐的(因为它将在iCloud()中) 但是,如果我需要一组新的实体,我可以简单地添加一个表示新的实体/属性集(与前两个模型无关,例如发票/付款

这里是学生飞行员。我相信我可以有两个托管对象模型(单独的.xcdatamodeld文件),表示两组不相关的实体/属性/关系(例如,员工/部门的模型1和产品/客户的模型2),并通过

+(NSManagedObjectModel *)modelByMergingModels:
轻量级迁移将在每个模型中工作。(正确吗?)我只想使用一个商店,这是为了提高效率而推荐的(因为它将在iCloud()中)


但是,如果我需要一组新的实体,我可以简单地添加一个表示新的实体/属性集(与前两个模型无关,例如发票/付款)的新模型文件吗?核心数据的轻量级迁移会在看到新实体时自动创建这些实体吗?

是的,这是可行的。但是它似乎代表了不必要的复杂性。当一个模型可以完成这项工作时,您使用了多个模型。当然,这是可行的,但为什么要让事情变得比必要的更困难呢?将所有东西都放在一个持久存储中文件中,您实际上没有将数据分开,因此使用多个模型只能让您做更多的工作。

应该这样。创建一个小测试项目并尝试一下。单独的模型对我来说似乎更干净,因为当我想专注于某个特定的问题时,我不会有各种不相关的实体和属性盯着我看ar一组相关实体。在我的示例中,如果我查看发票等的关系,我不会关心所有与人有关的事情。只有一个文件,我必须在所有相关项目上添加前缀,以便将它们排序在一起。以哲学设计纯度的名义,这似乎是不必要的复杂,但是嘿,它会起作用。在其中一个模型中,如果我添加一个新的模型版本,并将其设置为当前版本,清理、构建和运行,那么我会得到“找不到源存储的模型”。其他线程说使用NSString*path=[[NSBundle mainBundle]pathForResource:@“Foo”,类型:@“momd”];NSURL*momumurl=[NSURL fileURLWithPath:path];managedObjectModel=[[NSManagedObjectModel alloc]initWithContentsOfURL:momURL];--但如果有多个模型(没有单个文件),则这不起作用。帮助?更新…我还尝试使用pathForResource获取两个模型(两次)然后使用MultBygEngIn模型,但这并没有帮助。当然有多个文件,每个模型一个,如果你想在同一个持久存储中同时使用它们,你需要单独加载它们,然后合并它们。如果你有困难合并它们,发布一个新的问题。但是首先,考虑我所说的关于增加复杂度的问题。y:你在这里一点也帮不上忙,但你把事情弄得太难了。