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

标签 ios core-data

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

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

最佳答案

你的问题的答案是肯定的,这也会在用户的设备上崩溃。但是有一个很好的机制可以避免所谓的核心数据迁移。 Internet 和 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

关于ios coredata 在新版本中实体属性更改会导致崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29876951/

相关文章:

ios - 从 CoreData Swift 中的多个实体获取属性

ios - CoreData PersistentStorage 创建文件失败

ios - 访问另一个正在运行的应用程序的信息/状态

objective-c - 如何使用 Core Graphics 绘制箭头?

ios - 如何设置 MKPlacemark 的显示名称?

ios - 核心数据并发 `performBlockAndWait:` NSManagedObjectContext zombie

ios - 针对大数据的 CoreData 优化

ios - 如何在谷歌地图 iOS swift 中绘制两个位置之间的路线

ios - 一个应用程序可以被 Itunesconnect 中同一团队 ID 中的另一个应用程序替换吗?

ios - 在核心数据中保存 uipickerview 颜色