我是否需要大量迁移以修改核心数据中的关系?
问题描述:
我的应用程序从我的后端加载用户信息,然后尝试使用核心数据保存所有内容。我有几个实体,在我的数据模型中有一对多关系。我的问题是,如果我的数据库中的数据发生变化,并且我需要修改实体之间的关系,例如添加/删除,那么是否需要进行大量迁移?我已经在网上搜索和阅读了很多,看起来轻量级迁移不会这样做,因为我不是手动添加属性/实体。如果我确实需要进行沉重的迁移,那么会怎样呢?我可以找到关于大量迁移的地方。我是否需要大量迁移以修改核心数据中的关系?
我也想过每次修改之前删除以前的数据模型,然后保存整个新的实体。我不确定这是否是一种好方法,是否有更好的方法来缓存/存储从后端检索的数据?
答
也许你已经做到了这一点,但如果你没有,当你改变模型,你需要保存为一个新的版本,然后选择一个当前版本与该错误应该消失。
步骤如下:
- 选择Model.xcdatamodeld。
- 单击编辑器>添加模型版本....
- 单击完成以接受模型2作为版本名称。
- 选择Model.xcdatamodeld。
- 单击视图>实用程序>显示文件检查器(或按Option +⌘+ 1)。
- 设置当前的模型版本,以模型2
下面的链接以解释这个过程: Learning CoreData for iOS: Managed Object Model Migration
我可以问(愚蠢的问题),你的意思是与后端的东西,通常Coredata处理由本身就是数据存储(数据库,XML,文件)和视图之间的通信,所以在我做出更多评论之前,我需要了解您是否不是复制功能(如使用核心数据并同时使用手动创建的sqlite文件) 。 – JuValencia
我使用Parse作为我的后端,所以基本上每次我对Parse进行查询并获取我需要的数据时,我都想使用Core Data存储它,这样我就不必每次页面都随机查询呈现。 – jackson
你想更改数据模型还是要更改数据? – Willeke