我是否需要进行大量迁移才能修改核心数据中的关系?

时间:2016-01-22 02:01:11

标签: ios swift cocoa-touch core-data migration

我的应用从我的后端加载用户信息,然后尝试使用核心数据保存所有内容。我有几个实体,以及我数据模型中的一对多关系。我的问题是,如果我的数据库中的数据发生了变化,并且我需要修改实体之间的关系,例如添加/删除,我是否需要进行大量迁移?我在线搜索和阅读了很多内容,似乎轻量级迁移不会这样做,因为我没有手动添加属性/实体。如果我确实需要进行大量迁移,那会怎样呢?我真的没有太多关于那里的重迁移的信息。

我还想过每次进行更改时都删除以前的数据模型,然后保存整个新实体。我不确定这是否是一个好方法,是否有更好的方法来缓存/存储从后端检索的数据?

2 个答案:

答案 0 :(得分:0)

如果您不更改模型,则需要迁移。

即,Apple在使用它时意义上的“迁移”,即仅参考数据 model 。你的意思可能是数据“更新”。

您可以通常的方式进行数据更新:获取要修改的对象,更改它们(例如,将不同的对象设置为关系),保存。

答案 1 :(得分:0)

可能你已经这样做但是如果你还没有,当你更改模型时需要保存为新版本,然后选择那个作为当前版本,错误应该消失。

以下是步骤:

  1. 选择Model.xcdatamodeld。
  2. 点击编辑器>添加模型版本....
  3. 单击“完成”接受模型2作为版本名称。
  4. 选择Model.xcdatamodeld。
  5. 点击查看>公用事业>显示文件检查器(或按Option +⌘+ 1)。
  6. 将当前模型版本设置为模型2.
  7. 这里有一个链接解释了这个过程: Learning CoreData for iOS: Managed Object Model Migration