加密的核心数据迁移实体名称不匹配问题

时间:2015-11-01 02:33:00

标签: ios iphone core-data encryption core-data-migration

我正在使用核心数据加密,Appstore中当前版本的应用程序使用加密数据库。现在我计划通过新的实体修改发布我的应用程序的新版本。但在进行轻量级迁移时,我面临实体名称不匹配问题,系统无法匹配模型和数据库,因此操作失败。

我的发现如下: 加密时,实体名称通过为其添加前缀来重命名。

因此,如果实体名称是"国家",实际结果将是" abcCountry"在db。

虽然轻量级迁移,但模型具有实体名称" Country"它无法与旧版本db中的实体名称匹配。

解决方案是什么?我是否需要在新版本中重命名我的实体名称。

1 个答案:

答案 0 :(得分:0)

为了进行轻量级迁移,核心数据必须能够推断模型映射。

如果重命名实体,则无法判断" new"属性已添加或重命名。

因此,您必须通过设置其renamingIdentifier来通知核心数据已重命名属性。

在您的情况下,如果您从"国家"重新命名了一个属性到" abcCountry"那么你需要修改"目的地模型"并在新的" abcCountry"上设置renamingIdentifier属于"国家"所以它可以推断出适当的映射。

Apple's documentation就这很容易理解。