在应用版本之间访问核心数据实体等

时间:2011-03-24 01:46:00

标签: iphone objective-c ios core-data ios4

我继承了一个将CoreData用于某种类型的数据存储的项目。我想从应用程序中删除CoreData并将数据转换为其他格式...

在开发其他功能的过程中,我已经从应用程序和模型声明中删除了CoreData框架,而不期望需要转换旧数据。

但现在我确实需要转换旧数据。所以我采取的第一步是回到源代码控制,从旧版本中挖出xcdatamodel文件并将它们重新插入应用程序。

然后我转到应用程序的旧版本,安装在设备上,创建了一些数据......

然后当我回到更新版本的应用程序并重新安装CoreData时,我发现了一个崩溃,声称在托管对象上下文中找不到有问题的数据实体。我三重检查拼写和语法,然后检查出来。

我觉得我可能缺少一些重要的配置,以使其识别声明该实体的xcdatamodel文件。

任何见解都会有所帮助。

3 个答案:

答案 0 :(得分:1)

核心数据架构的版本是什么?你确定你有合适的版本吗?如果所有其他方法都失败,您可以尝试的一件事就是打开核心数据用于其后备存储的sqlite数据库文件并编写您自己的迁移例程。

答案 1 :(得分:0)

您是否在'那个'旧版本之后添加了新实体?如果是,则需要为新版本编写迁移代码。

答案 2 :(得分:0)

我做了一个语法缺陷,导致完整的上下文无法正确加载......当我改变它然后一切都很好。

有时这些框架会产生最误导性的错误......