我有一个澄清,如果我在ituenes应用程序商店上传了我的应用程序的第一个版本1.0,并且该应用程序100个用户已经下载并使用它,一个月后我在同一个应用程序中添加了一些额外的功能并上传下一个版本,例如:1.2
然后已经使用这些应用程序的100个用户已经更新了下一个版本。
我的问题是:在第一个版本中,如果他们保存了他们的数据 1. Nsuser默认 2.核心数据
更新下一个版本时是否会删除。
这个过程是什么,有人可以解释。
答案 0 :(得分:2)
如果您对数据模型进行了更改,那么在使用Core Data时,有几种可能性。
首先,如果您不做任何事情并且只更新数据模型,那么当更新应用于现有安装时,应用程序将在尝试访问CoreData数据时崩溃。这是因为它所期望的模型与数据库中的模型不同。
其次,您可以通过手动删除核心数据存储并设置新数据来解决此问题。这也将摆脱所有数据,因此可能不是一个好的解决方案。
第三,您可以更新CoreData模型版本号。而不仅仅是更改数据模型,而是从现有数据模型创建新版本的数据模型。
现在,当应用程序检测到数据模型和数据不匹配时(如上面的第一个版本),它会将数据从旧版本迁移到新版本。有时这可以自动实现,但可能需要一些额外的代码来帮助它。
此网站介绍了迁移的工作原理...... https://www.objc.io/issues/4-core-data/core-data-migration/