【问题标题】:Merge data when change coredata version更改 coredata 版本时合并数据
【发布时间】:2013-11-19 08:16:19
【问题描述】:

在看问题之前,先来看看我的coredata schema:

我的 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:很抱歉问这种问题,因为我对 migrate coredata 的了解只是轻量级迁移。在这个问题上,轻量级迁移删除所有笔记,这是我不想要的选项。苹果没有太多关于迁移的文件,比如......这个。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

    • 可能不是制作应用程序的好方法...从编程上讲,我同意这部分。但是分两步分离它并使用轻量级迁移,显然不是让它工作的好方法。我想使用其他方式,例如自定义迁移或类似的方式...抱歉,您的解决方案不适合这里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多