Objective c NSMappingModel的程序创建

Objective c NSMappingModel的程序创建,objective-c,cocoa,core-data,mapping-model,Objective C,Cocoa,Core Data,Mapping Model,我想通过编程(无需轻量级迁移)在两个完全相同的模型之间创建一个映射模型,只是其中一个实体(有一堆实体)具有不同的属性。让我们称这个实体为“人”。假设目的地模型 1) 添加了一个名为“address”的新属性 2) 删除了名为“eyeColor”的属性 3) 保留(即未使用)名为“name”的属性 如何以编程方式在这些模型之间创建NSMappingModel?我碰巧有一些明确的问题可以帮助我自己做到这一点: Q1)我是否必须为除“Person”之外的所有实体创建NSEntityMapping对象,

我想通过编程(无需轻量级迁移)在两个完全相同的模型之间创建一个映射模型,只是其中一个实体(有一堆实体)具有不同的属性。让我们称这个实体为“人”。假设目的地模型

1) 添加了一个名为“address”的新属性

2) 删除了名为“eyeColor”的属性

3) 保留(即未使用)名为“name”的属性

如何以编程方式在这些模型之间创建NSMappingModel?我碰巧有一些明确的问题可以帮助我自己做到这一点:

Q1)我是否必须为除“Person”之外的所有实体创建NSEntityMapping对象,即使它们保持不变

问题2)如何处理正在创建的“Person”中的“address”属性?我是否应该为它创建一个NSPropertyMapping,以某种方式将任何东西都转换为某种东西(“地址”)

问题3)如何处理“Person”中的“name”属性?我是否必须为此创建NSPropertyMapping,即使它保持不变

问题4)对于与“Person”对应的NSEntityMapping,为“eyeColor”创建任何NSPropertyMapping不是删除它的正确方法吗?还是应该为“eyeColor”创建NSPropertyMapping?如果是,该对象将如何创建,即如何确定其目的是消除“眼睛颜色”


提前感谢您,我很抱歉不能亲自回答这些问题,因为文档中没有关于如何以编程方式创建NSMappingModels的好例子。再次注意,我不允许使用轻量级迁移。我必须手动执行此操作。

我一直使用Xcode的自动映射功能,但在我看来,您也可以从中学到很多东西。创建源模型(部分)的模型,添加版本,修改它以反映目标模型并生成映射模型(菜单设计>>映射模型)。如果您随后控制单击为您生成的.xcmappingmodel Xcode,并告诉查找程序向您显示包的内容,您将在其中找到一个列出所有映射的XML文件。您可以使用xml作为指南,帮助您在代码中重新创建流程。祝你好运。

我一直在使用Xcode的自动映射功能,但在我看来,你也可以从中学到很多东西。创建源模型(部分)的模型,添加版本,修改它以反映目标模型并生成映射模型(菜单设计>>映射模型)。如果您随后控制单击为您生成的.xcmappingmodel Xcode,并告诉查找程序向您显示包的内容,您将在其中找到一个列出所有映射的XML文件。您可以使用xml作为指南,帮助您在代码中重新创建流程。祝你好运