以编程方式创建实体时如何设置NSManagedObjectModel的配置。

时间:2018-09-15 21:52:29

标签: ios objective-c swift core-data

我正在使用SWIFT以编程方式在核心数据的托管对象模型中创建实体。

当我创建一个NSEntityDescription数组并将其传递给

让managedObjectModel:NSManagedObjectModel = NSPersistentContainer(名称:“ Nequore”)。managedObjectModel

managedObjectModel.setEntities(arrEntities,forConfigurationName:“默认”)

我正面临与模型配置有关的崩溃,该崩溃指出

***由于未捕获的异常“ NSInternalInconsistencyException”而终止应用程序,原因:“配置实体必须已经在模型中。”

感谢您的时间和考虑。

1 个答案:

答案 0 :(得分:2)

我认为这种崩溃在Apple documentation for NSManagedObjectModel中得到了解释。阅读段落以编程方式编辑模型

您的语句let managedObjectModel正在创建一个持久容器(Core Data Stack),其中包括一个托管对象模型,该模型可能是空的(没有实体),而我猜测创建持久容器是使用模型,根据该文档,不再应对其进行编辑。尝试先创建托管对象模型,首先完成所有实体,然后先将该模型传递给NSPersistentContainer init(name:managedObjectModel:)