重用核心数据实体

时间:2014-11-29 20:43:21

标签: cocoa cocoa-touch core-data

我注意到我一遍又一遍地在不同的Core Data应用中重新创建多个实体。

有没有办法在不同的数据模型中重用实体?类似于经常使用的实体库。

1 个答案:

答案 0 :(得分:2)

是的,因为您的NSManagedObjectModel实例可以由多个模型文件组成。最简单的方法可能是:

  1. 在您的应用项目中创建多个模型文件。一个可以是在多个项目中使用的共享实体的集合。
  2. 在运行时,使用NSManagedObjectModel为每个文件创建initWithContentsOfURL:
  3. 使用modelByMergingModels:将步骤2中的所有实例合并为一个统一模型。这将为您提供一个新的NSManagedObjectModel实例,其中包含所有模型文件中的所有实体。
  4. 使用核心数据堆栈中步骤3中的模型。

    还可以使用mergedModelFromBundles:组合模型,这将找出指定包中的所有现有模型(应用程序包或框架包)。我更喜欢明确我正在加载的模型,但这两种方法都有效。