更改coredata版本时合并数据

时间:2013-11-19 08:16:20

标签: ios core-data core-data-migration

在查看问题之前,让我们来看看我的coredata架构:

我的coredata模式的第1版:

--Entity:
<Family>, <Member>, <Note>

<Note> Attribute:
content: string

--Relationship:
Family 1-many Member
Member 1-1 Note (*)

在版本2中,coredata架构:

--Entity:
<Family>, <Member>, <Note>

<Note> Attribute:
content: string

--Relationship:
Family 1-1 Note (*)
Family 1-many Member

所以,这意味着我想要从成员到家庭的注释的升级范围(在两个版本中查看那些*)。

问题是:如何将所有成员的所有笔记的内容合并为一个大笔记,然后添加到新家庭的笔记中。

示例:

Before:
family.mem1.note = "mem1 note"
family.mem2.note = "mem2 note"

After:
family.note = "mem1 note, mem2 note"
P / S:我很抱歉提出这样的问题,因为我所知道的迁移coredata都是轻量级迁移。在这个问题上,轻量级迁移删除所有注释,这是我不想要的选项。 Apple没有太多关于迁移的文档,比如...

1 个答案:

答案 0 :(得分:0)

你必须以编程方式执行此操作。我建议在新模型中保留现有的Member-Note并添加Family-Note。现在轻量级迁移将起作用,然后一旦迁移完成,就使用自定义函数通过迭代所有Family.members并将member.note附加到Family.note来更新每个Family.note。