【问题标题】:how to remove datamodel from core data and add a new one?如何从核心数据中删除数据模型并添加一个新模型?
【发布时间】:2010-09-08 15:45:18
【问题描述】:

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

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

谢谢! 拉姆

【问题讨论】:

    标签: iphone objective-c core-data


    【解决方案1】:

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

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

    我喜欢 知道这个新的 xcdatamodel 将创建 用户的任何问题,同时 更新我们的新版本?更新我们的新版本?

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

    【讨论】:

      【解决方案2】:

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

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

      退出模拟器

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

      如果需要更新数据模型版本:

      1. Editor > Add Model Version...
      2. 在出现的对话框中设置您的首选项(最好是向上计数)
      3. 点击 {appname}.xcdatamodeld 然后在最右侧的窗格中
      4. 点击最右列顶部 3 个图标中的左侧图标
      5. Versioned Core Data Model 下选择您刚刚创建的那个

      删除{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 文件了!

      干杯, 罗伯特

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-09-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-07-28
        相关资源
        最近更新 更多