Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/104.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 核心数据轻量级迁移有多少个迁移步骤?_Ios_Core Data_Core Data Migration - Fatal编程技术网

Ios 核心数据轻量级迁移有多少个迁移步骤?

Ios 核心数据轻量级迁移有多少个迁移步骤?,ios,core-data,core-data-migration,Ios,Core Data,Core Data Migration,我在iPhone应用程序中使用核心数据和轻量级迁移 假设我为应用程序创建了3个版本的数据模型。一位用户安装了my app的早期版本,其数据模型版本仍然是v1。当用户将应用程序更新为数据模型版本v1、v2和v3的最新版本时,更新过程中发生了什么 sqlite数据库首先从v1迁移到v2,然后从v2迁移到v3?或者它只是从v1跳到v3?在内部,我相信核心数据轻量级迁移将按顺序将更改应用到每个后续版本,但出于您的目的,您可以将其视为直接发生在最终版本上的迁移。据我所知,在轻量级迁移过程中,没有“钩子”来

我在iPhone应用程序中使用核心数据和轻量级迁移

假设我为应用程序创建了3个版本的数据模型。一位用户安装了my app的早期版本,其数据模型版本仍然是v1。当用户将应用程序更新为数据模型版本v1、v2和v3的最新版本时,更新过程中发生了什么


sqlite数据库首先从v1迁移到v2,然后从v2迁移到v3?或者它只是从v1跳到v3?

在内部,我相信核心数据轻量级迁移将按顺序将更改应用到每个后续版本,但出于您的目的,您可以将其视为直接发生在最终版本上的迁移。据我所知,在轻量级迁移过程中,没有“钩子”来拦截和运行版本间的代码


如果需要更改数据或添加新数据,则应动态确定模型版本并做出相应反应。

核心数据不关心版本顺序,也不关心任何中间版本。它只知道源版本和目标版本,它将直接在它们之间迁移


一般来说,对于轻量级迁移,这会很好。不过,我也认为一般的过程应该是一个版本一个版本的迁移,或者至少在决定最终模式时,每个历史模型模式都将被引用。但实施细节很重要,但事实并非如此,请看我的答案。