ios coredata会在新版本中实体属性更改导致崩溃

时间:2015-04-26 11:20:33

标签: ios core-data

我在我的应用程序中使用coredata来存储数据。在我以前的应用程序版本中,它有一些实体。现在我正在做新版本,并且某些实体的某些属性名称和类型已更改。当我在我的设备中编译并运行app时,它会崩溃并报告一些错误,因为旧的coredata不再是vilid。我可以通过从我的设备中删除应用程序并重新编译并安装它来解决此问题。

我的问题是,如果新版本是由用户从应用商店下载的,这种更改是否会导致用户设备崩溃?因为用户会创建一些数据并存储在较旧的coredata中。另外,我是否需要将旧数据移动到新的coredata,例如,属性名称从“photoId”更改为“picId”,那么旧的photoId值会因此更改而丢失吗?

1 个答案:

答案 0 :(得分:1)

你的回答是肯定的,那也将在用户的设备上崩溃。但是有一种很好的机制来避免这种称为核心数据迁移的问题互联网和Apple文档中有很多文章,其中一些是:

  1. Core Data Model Versioning and Data Migration - Apple Docs
  2. How to Perform a Lightweight Core Data Migration - Raywenderlich
  3. Custom Core Data Migrations - objc.io