我正在开发iOS应用程序使用coredata。
我知道如何在“XCode”中更改模型当前版本的xcdatamodeld。但我可以在程序中更改它吗?
如果可以的话,请教我。
答案 0 :(得分:0)
不,您无法更改当前版本。但你也不需要。
-initWithContentsOfURL:
上的NSManagedObjectModel
方法选择要使用的模型。加载当前版本只是一种迁移方便,不是必需的。
谢谢你的回答。我有一个问题。如果我想在某些情况下选择当前版本,复制原始xcdatamodeld文件并在项目中放入两个xcdatamodeld文件,原始xcdatamodeld设置当前版本并复制xcdatamodeld设置另一个版本,我通过initWithContentsOfURL方法选择这些文件。这种方式可行吗?
这是可能的,但不必要。当您将-initWithContentsOfURL
指向momd
时,它会自动选择最新版本的模型。如果将其指向mom
文件,则会加载单个模型。由于mom
文件位于momd
目录中,因此您只能保留一个版本化模型,然后加载所需的任何版本的模型。当我手动完成所有迁移时,我经常这样做。
mom
是编译的xcdatamodel
文件。 momd
是已编译模型的目录,是编译xcdatamodeld
包(也称为文件夹)的结果。