我正在使用核心数据加密,Appstore中当前版本的应用程序使用加密数据库。现在我计划通过新的实体修改发布我的应用程序的新版本。但在进行轻量级迁移时,我面临实体名称不匹配问题,系统无法匹配模型和数据库,因此操作失败。
我的发现如下: 加密时,实体名称通过为其添加前缀来重命名。
因此,如果实体名称是"国家",实际结果将是" abcCountry"在db。
虽然轻量级迁移,但模型具有实体名称" Country"它无法与旧版本db中的实体名称匹配。
解决方案是什么?我是否需要在新版本中重命名我的实体名称。
答案 0 :(得分:0)
为了进行轻量级迁移,核心数据必须能够推断模型映射。
如果重命名实体,则无法判断" new"属性已添加或重命名。
因此,您必须通过设置其renamingIdentifier
来通知核心数据已重命名属性。
在您的情况下,如果您从"国家"重新命名了一个属性到" abcCountry"那么你需要修改"目的地模型"并在新的" abcCountry"上设置renamingIdentifier
属于"国家"所以它可以推断出适当的映射。
Apple's documentation就这很容易理解。