gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 10:38:39 25 4
gpt4 key购买 nike

对于这个例子,假设我的核心数据模型是这样的:

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)

如您所见,我删除了 Address来 self 的模型方案的实体,并在 Person 中添加了一个“地址”字符串属性而不是与 Address 的一对一关系实体。

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

当然,我需要为新结构调整我的模型,所以我想做的是检查我所有的 Person反对并做类似的事情:

for (Person *per in allPersons) {    
NSString *stName = per.address.streetName;
NSString *stNum = per.address.streetNumber;
per.address = [NSString stringWithFormat:@"%@ %@", stName, stNum];
}

问题是我的新方案中不再存在地址实体,所以我该怎么做 per.address

我想我需要使用迁移管理器或映射模型,只是不确定它对我有何帮助以及如何使用它。
对于这种用例,我会很感激一个简单的例子。

最佳答案

您可以使用 Core Data 中可用的迁移选项,但在这种情况下,使用所谓的轻量级迁移 是不够的。自定义迁移的学习曲线相当可观。

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

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

关于ios - 从方案中删除实体后的核心数据迁移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25665989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com