Xcode 4,核心数据模型版本-设置当前版本

我对如何在 Xcode 4中执行以下函数感到困惑,以便在创建版本化模型之后设置要使用的模型。

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

30275 次浏览
  1. 单击顶层的.xcdatamodelId 文件(其下有许多版本的.xcdatamodelId 作为子文件)。
  2. 确保工具栏是可见的(如果没有点击窗口右上角的第三个“查看”按钮)。
  3. 在工具栏选择文件检查器(左上角的小纸图标)
  4. 您将看到“版本核心数据模型”作为一个组,所以只需更改“当前”下拉列表到您的新版本。

在 Xcode 的帮助中搜索“当前版本”会得到一个菜谱“设置托管对象模型的当前版本”,其中描述了如何做到这一点... ..。

为了 Xcode 4.2

  1. 点击 YourModel.xcdatamodeld

  2. 使侧窗格可见

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

现在,绿色的刻度标记被移动到当前数据模型中。

在 Xcode 4中,如果您只在文件检查器的“ VersionedCoreDataModel-Current”部分中看到数据模型的一个版本,那么当您拥有 * 。选择 xcdatamodeld 文件; 或者您有第二个版本的 * 。显示在 Xcode 项目导航器中 xcdatamodeld 包之外的 xcdatamodel 文件,如下所示。

为了解决这个问题:

1) 删除两个 * 。Xcdatamodeld 和 * 。Xcdatamodel 引用 Xcode,在项目导航中右键单击它们,然后点击“删除”。

2) 当 Xcode 提示时,单击 只删除引用(非常重要)。

3) 重新启动 Xcode,以防有任何缓存正在进行。

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

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

有点偏离主题,但是如果你已经到了这个问题,为了知道如何创建你的模型的第一个新版本(像我一样) : 单击 xcdatamodel 文件 > > Menu“ Editor”> > Add Model version

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

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

选择核心数据模型版本

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

您还可以使用 CoraData 中的 setter 方法..。
就像这样..。

在你的 CustomCoreDataManager.m:

#import "ObjectiveRecord.h"

并像这样调用 init 方法

- (instancetype)init {


self = [super init];


if (self) {
[[CoreDataManager sharedManager] setModelName:@"YourModelName"];
}


return self;
}

前面答案的重要注意事项: 模型中的一个实体需要重点关注,以便出现下拉菜单。

Xcode 12.1的步骤

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