【问题标题】:Xcode 4, Core Data Model Version - Set Current VersionXcode 4,核心数据模型版本 - 设置当前版本
【发布时间】:2011-07-19 08:27:31
【问题描述】:

我对如何在 Xcode 4 中执行以下功能来设置模型以在创建版本化模型后使用感到困惑。

设计 > 数据模型 > 设置当前版本

【问题讨论】:

  • 我希望每次我必须重新引用它时都能投票赞成。

标签: core-data xcode4


【解决方案1】:
  1. 单击顶层 .xcdatamodelId 文件(该文件下有多个 .xcdatamodel 版本作为子文件)。
  2. 确保实用程序侧窗格可见(如果没有,请单击窗口右上角的第三个“查看”按钮)。
  3. 在实用程序侧窗格中,选择文件检查器(左上角的小纸图标)
  4. 您将看到“版本化核心数据模型”作为一个组,因此只需将“当前”下拉菜单更改为您的新版本。

【讨论】:

【解决方案2】:

在 Xcode 4 中,当您选择 *.xcdatamodeld 文件时,如果在文件检查器的“版本化核心数据模型 - 当前”部分下仅看到一个版本的数据模型;或者您的 *.xcdatamodel 文件的第二个版本显示在 Xcode 的项目导航器中的 xcdatamodeld 包之外,请阅读下文。

解决这个问题:

1) 通过在项目导航器中右键单击它们并点击“删除”,从 Xcode 中删除 *.xcdatamodeld 和 *.xcdatamodel 引用。

2) 当 Xcode 提示时,点击 Remove References Only(非常重要)。

3) 重启 Xcode 以防发生任何缓存。

4) 重新添加包含两个 *.xcdatamodel 文件的单个 *.xcdatamodeld 文件。

Xcode 现在应该可以识别这些关系,并允许您在项目导航器中展开 *.xcdatamodeld 文件以显示父 xcdatamodeld 包下的两个 *.xcdatamodel 文件,同时在当前模型旁边显示一个绿色复选标记。这还应该允许您在文件检查器中选择数据模型的当前版本,而不是只显示一个版本。

【讨论】:

  • 这样就结束了挠头。
  • 我不小心将父 xcdatamodelid 更改为应用程序包,这个解决方案有帮助!
【解决方案3】:

对于 Xcode 4.2

  1. 点击 YourModel.xcdatamodeld

  2. 使侧窗格可见

  3. 在“版本化核心数据模型”下,选择“当前下拉框”,选择您的数据模型。

现在绿色刻度线已移至您当前的数据模型。

【讨论】:

  • “对象库”中没有“版本化核心数据模型”之类的东西。第一个答案(来自 Mac_Cain13)是正确的,尽管我的模型在 Xcode 中的 .modeld 之外似乎有一个奇怪的错误。
  • @StuFFmc - 查看我下面的帖子以解决 xcdatamodel 文件位于 Xcode 项目导航器中的 xcdatamodeld 包之外的问题。
【解决方案4】:

在 Xcode 的帮助中搜索“当前版本”会产生一个“设置托管对象模型的当前版本”配方,其中描述了如何执行此操作...

【讨论】:

    【解决方案5】:

    有点跑题了,但是如果您为了了解如何创建模型的第一个新版本而遇到了这个问题(就像我所做的那样): 点击xcdatamodel文件>>菜单“编辑器”>>添加模型版本

    这将启动模型的版本控制。

    【讨论】:

      【解决方案6】:

      这对我有用:https://developer.apple.com/library/mac/recipes/xcode_help-core_data_modeling_tool/Articles/setting_current_version.html

      selecting the core data model version

      现在我的自动数据库模型迁移工作(使用委托中的自动迁移代码)。

      【讨论】:

        【解决方案7】:

        对先前答案的重要说明:一个是模型中的实体需要聚焦才能显示下拉菜单。

        Xcode 12.1 的步骤

        1. 选择最顶层的数据模型(具有子版本模型的模型)。
        2. 选择一个实体以显示下拉列表。
        3. 从下拉菜单中选择型号版本

        【讨论】:

          【解决方案8】:

          您还可以使用 CoraData 中的 setter 方法 ...
          只要做这样的事情......

          在您的 CustomCoreDataManager.m 中:

          #import "ObjectiveRecord.h"
          

          然后像这样调用init方法

          - (instancetype)init {
          
              self = [super init];
          
              if (self) {           
                  [[CoreDataManager sharedManager] setModelName:@"YourModelName"];
              }
          
              return self;
          }
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-07-15
            • 2018-10-24
            • 2014-06-19
            • 2010-12-16
            • 1970-01-01
            • 1970-01-01
            • 2011-07-16
            • 1970-01-01
            相关资源
            最近更新 更多