Ios 从方案中删除实体后的核心数据迁移

Ios 从方案中删除实体后的核心数据迁移,ios,objective-c,core-data,Ios,Objective C,Core Data,对于本例,假设我的核心数据模型如下: Person ------ - firstName (string) - lastName (string) - address (to-one relationship with Address) Address ------- - streetName (string) - streetNumber (int) - person (to-one relationship with Person) 现在,对于我的应用

对于本例,假设我的核心数据模型如下:

Person
------  
- firstName  (string)
- lastName (string)  

- address (to-one relationship with Address)  

Address  
-------  
- streetName  (string)
- streetNumber (int)  

- person (to-one relationship with Person)  
现在,对于我的应用程序的下一个版本,我想将我的模型简化为:

Person
------  
- firstName  (string)
- lastName (string)  
- address (string) 
如您所见,我从模型方案中删除了
地址
实体,并在
人员
中添加了一个“地址”字符串属性,而不是与
地址
实体的to-one关系

我的问题是如何进行这种迁移

当然,我需要根据新的结构调整我的模型,所以我想做的是检查我所有的
Person
对象,然后执行如下操作:

for (Person *per in allPersons) {    
   NSString *stName = per.address.streetName;  
   NSString *stNum = per.address.streetNumber;
   per.address = [NSString stringWithFormat:@"%@ %@", stName, stNum];
}
问题是地址实体在我的新方案中不再存在,所以我如何才能按.address执行

我想我需要使用迁移管理器或映射模型,只是不确定它将如何帮助我,以及如何使用它。

对于这种用例,我希望有一个简单的例子

您可以使用核心数据中可用的迁移选项,但在这种情况下,仅使用所谓的
轻量级迁移是不够的。定制迁移的学习曲线相当可观

另一种选择是只需将
地址
实体保留在模型中,以便您可以将其用于“手动”迁移过程。当应用程序第一次使用新方案启动时,使用此实体构造新的地址字符串


在代码的其余部分,您只需忽略它。在我看来,这是最实际、最简单的解决方案。

您能举一个例子说明如何进行这种迁移吗?或者参考一个例子,你没什么可做的。只需使用更改属性的名称并添加新的属性(按照链接),然后在第一次运行时在循环中复制它们。我在谈论自定义迁移选项,当然我需要为此创建映射模型?