Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/26.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
Objective c 基于两种映射模型的核心数据迁移_Objective C_Core Data_Migration - Fatal编程技术网

Objective c 基于两种映射模型的核心数据迁移

Objective c 基于两种映射模型的核心数据迁移,objective-c,core-data,migration,Objective C,Core Data,Migration,我希望你能帮助我。 我有三个模型版本V1、V2和V3(当前模型)。 因此,我有两个映射模型v1to2v2to3 我还启用了NSMigratePersistentStoresAutomatically选项 当我使用V2商店启动应用程序时,它会成功迁移到V3。 但是,当我使用V1商店启动应用程序时,应用程序崩溃,因为找不到映射模型: NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObject:[NSNumber numbe

我希望你能帮助我。 我有三个模型版本V1、V2和V3(当前模型)。 因此,我有两个映射模型v1to2v2to3 我还启用了NSMigratePersistentStoresAutomatically选项

当我使用V2商店启动应用程序时,它会成功迁移到V3。 但是,当我使用V1商店启动应用程序时,应用程序崩溃,因为找不到映射模型:

NSDictionary *optionsDictionary = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES] forKey:NSMigratePersistentStoresAutomaticallyOption];

if (![psc addPersistentStoreWithType:NSSQLiteStoreType
            configuration:nil
                  URL:storeURL
                  options:optionsDictionary
                    error:&error]) {
    [NSexception raise:@"Open failed" format:@"Reason: %@", [error localizedDescription]];
}
我尝试将当前模型更改为V2,它成功地从v1迁移到V2。 在那之后,我只是将当前模型更改回V3,并再次对应用程序进行战略规划,它成功地从V2toV3迁移

但是,我错在哪里了,这个迁移不会首先自动运行V1toV2,然后通过V2toV3自动运行

非常感谢您的期待。
Flo

您需要创建第三个从V1到V3的映射模型。核心数据不经过增量映射模型。其工作方式是,核心数据分析数据文件(V1)中的模型和项目(V3)中的当前模型,然后尝试找到从前者到后者的映射模型。因此,在添加V4时,需要创建从V1到V4、从V2到V4以及从V3到V4的映射模型

如果从V1到V3的更改导致单个映射模型无法工作,则需要以编程方式手动将文件从V1转换为V2,然后再将生成的V2数据文件提供给自动迁移


启用核心数据迁移调试可以帮助您了解发生了什么。查看详细信息。

您需要创建第三个从V1到V3的映射模型。核心数据不经过增量映射模型。其工作方式是,核心数据分析数据文件(V1)中的模型和项目(V3)中的当前模型,然后尝试找到从前者到后者的映射模型。因此,在添加V4时,需要创建从V1到V4、从V2到V4以及从V3到V4的映射模型

如果从V1到V3的更改导致单个映射模型无法工作,则需要以编程方式手动将文件从V1转换为V2,然后再将生成的V2数据文件提供给自动迁移

启用核心数据迁移调试可以帮助您了解发生了什么。查看详细信息