首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可选关系的CoreData迁移到非可选关系

可选关系的CoreData迁移到非可选关系
EN

Stack Overflow用户
提问于 2011-05-18 20:46:22
回答 2查看 633关注 0票数 10

我正在编写一个使用CoreData的Cocoa应用程序。我现在有几个版本给测试人员,当他们升级到最新的beta版本时,他们希望能够保存他们的数据。我一直在使用映射模型自动地将数据库从一个版本迁移到另一个版本,没有问题。

但这一次,我不得不迁移一个数据库,在那里,曾经是可选的关系变成了非可选的关系。当CoreData迁移到这个版本时,它会崩溃,说明这种关系是必需的。这是有意义的--如果没有早期版本中的关系,它怎么可能知道在这些对象中放什么呢?

因此,我想我需要在某个地方编写一些代码,创建一个新的托管对象,如果旧数据库中的关系为0,则填充该关系。我认为这可能意味着对NSMigrationPolicy进行子类化,但我在网上找到的所有示例都显示了如何迁移属性,而不是关系。

因此,我的问题是:如何在迁移时创建一个NSManagedObject来填充从可选到非可选的关系?

EN

回答 2

Stack Overflow用户

发布于 2012-12-11 23:11:42

我认为最简单的方法是创建一个单独的脚本,从旧的Core数据存储区读取并写入新的数据库,根据需要动态创建任何必需的对象。

票数 2
EN

Stack Overflow用户

发布于 2012-01-02 14:35:12

有趣的问题。我现在还没有现成的答案,但我会从重写- (BOOL)createDestinationInstancesForSourceInstance:(NSManagedObject *)sInstance entityMapping:(NSEntityMapping *)mapping manager:(NSMigrationManager *)manager error:(NSError **)error开始。

这似乎是一个可以确定给定实例(NSManagedObject *)sInstance是否有空关系的点,如果是,则填充它。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6050795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档