如何在“源”中更改模型当前版本的 xcdatamodeld
Posted
技术标签:
【中文标题】如何在“源”中更改模型当前版本的 xcdatamodeld【英文标题】:How to change model current Version of xcdatamodeld in "Source" 【发布时间】:2014-02-28 04:12:13 【问题描述】:我正在开发使用 coredata 的 ios 应用程序。
我知道如何在“XCode”中更改模型当前版本的 xcdatamodeld。但是我可以在程序中更改它吗?
如果可以,请教我。
【问题讨论】:
不,你不能从代码中改变你的模型版本,但你可以create your model programatically。 感谢您的回答。我会检查网址。 【参考方案1】:不,您不能更改当前版本。但你也不需要。
-
您可以按照@Adam 的建议以编程方式创建模型。
您可以通过
NSManagedObjectModel
上的-initWithContentsOfURL:
方法选择您希望使用的模型。
加载当前版本只是为了方便迁移,不是必需的。
更新
谢谢你的回答。我有一个问题。如果我想在某些情况下选择当前版本,请复制原始 xcdatamodeld 文件并将两个 xcdatamodeld 文件放入项目中,原始 xcdatamodeld 设置为当前版本,复制的 xcdatamodeld 设置为另一个版本,我通过 initWithContentsOfURL 方法选择了这些文件。这种方式可行吗?
这是可能的,但没有必要。当您将-initWithContentsOfURL
指向您的momd
时,它将自动选择模型的最新版本。如果将其指向mom
文件,它将加载单个模型。由于mom
文件位于momd
目录中,因此您可以只保留一个版本化模型,然后加载您想要的该模型的任何版本。当我手动进行所有迁移时,我经常这样做。
mom
是已编译的xcdatamodel
文件。 momd
是编译模型的目录,是编译 xcdatamodeld
包(又名文件夹)的结果。
【讨论】:
感谢您的回答。我有一个问题。如果我想在某些情况下选择当前版本,请复制原始 xcdatamodeld 文件并将两个 xcdatamodeld 文件放入项目中,原始 xcdatamodeld 设置为当前版本,复制的 xcdatamodeld 设置为另一个版本,我通过 initWithContentsOfURL 方法选择了这些文件。这种方式可行吗? 感谢您的补充。这个答案对我很有帮助。以上是关于如何在“源”中更改模型当前版本的 xcdatamodeld的主要内容,如果未能解决你的问题,请参考以下文章