2

我正在开发使用 coredata 的 iOS 应用程序。

我知道如何在“XCode”中更改模型当前版本的 xcdatamodeld。但是我可以在程序中更改它吗?

如果可以,请教我。

4

1 回答 1

1

不,您不能更改当前版本。但你也不需要。

  1. 您可以按照@Adam 的建议以编程方式创建模型。
  2. 您可以选择您希望使用的模型与上的-initWithContentsOfURL:方法一起使用NSManagedObjectModel

加载当前版本只是为了方便迁移,不是必需的。

更新

谢谢你的答案。我有一个问题。如果我想在某些情况下选择当前版本,请复制原始 xcdatamodeld 文件并将两个 xcdatamodeld 文件放入项目中,原始 xcdatamodeld 设置为当前版本,复制的 xcdatamodeld 设置为另一个版本,我通过 initWithContentsOfURL 方法选择了这些文件。这种方式可行吗?

这是可能的,但没有必要。当您指向-initWithContentsOfURL您的momd时,它将自动选择模型的最新版本。如果你将它指向一个mom文件,它将加载一个模型。由于mom文件在momd目录中,您可以只保留一个版本化模型,然后加载您想要的任何版本的模型。当我手动进行所有迁移时,我经常这样做。

Amomxcdatamodel编译的文件。Amomd是编译模型的目录,是编译xcdatamodeld包(又名文件夹)的结果。

于 2014-02-28T16:53:59.850 回答