如何从核心数据中删除数据模型并添加新数据模型?

时间:2010-09-08 15:45:18

标签: iphone objective-c core-data

我正在开发一个iphone应用程序项目。我们已经发布了一个带有coredata模型的应用程序,现在在我们的新版本中,我们希望删除旧版本并添加一个新版本。 (我们没有在现有核心数据模型上存储任何用户值)。我们忘记从应用程序文件夹中删除xcdatamodel,但我们删除了与核心数据相关的所有代码。现在我们必须删除xcdatamodelfile及其相关的h和m类。

在我们的新项目包中,我们可以创建一个新的核心数据模型并提交该应用程序吗?我想知道这个新的xcdatamodel会在更新我们的新版本时为用户带来任何问题吗?

谢谢! 拉姆

2 个答案:

答案 0 :(得分:0)

  

在我们的新项目包中可以   创建一个新的核心数据模型和   提交申请?

在更改数据模型后,永远不要忘记进行完全重建,因为构建过程有时无法正确识别数据模型更改

  

我喜欢   知道这个新的xcdatamodel会创建   用户遇到的任何问题   更新我们的新版本?更新我们的新版本?

由于您不需要任何旧数据/迁移,因此在新位置创建持久存储,旧模型/旧数据文件根本不会成为问题。 (鉴于该模型已被新的适当替换)

答案 1 :(得分:0)

答案有点棘手,但这对我来说总是有用。这是为了干净安装新兼容的.sqlite文件,不是迁移

启动模拟器,删除应用和数据(删除应用后弹出窗口)。

退出模拟器

在对数据模型进行任何编辑后打开X-Code

如果需要,请更新datamodel版本:

  1. Editor > Add Model Version...
  2. 在出现的对话框中设置您的首选项(最好是计数)
  3. 点击最右侧窗格中的{appname} .xcdatamodeld
  4. 点击最右列顶部3个图标的左侧图标
  5. Versioned Core Data Model下选择您刚创建的
  6. 删除{appname}.sqlite文件(或备份它,将其从项目文件夹中删除,然后删除引用)

    清理应用(Product > Clean

    在模拟器中运行应用程序(对于本教程,我将假设4.2)

    在模拟器运行时,在Finder窗口中,导航至: {home} > Library > Application Support > iPhone Simulator > 4.2 > Applications > {random identifier} > Documents > {appname}.sqlite

    将此文件复制到其他位置

    停止在X-Code中运行您的应用

    将{appname} .sqlite文件拖放到X-Code中的文件列表中。

    在弹出的对话框中,确保选中copy to folder复选框。

    Product > Clean

    然后再次在模拟器中运行应用程序

    现在你应该有一个工作的sqlite文件!

    干杯, 罗伯特