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

Posted

技术标签:

【中文标题】如何在以编程方式创建实体时设置 NSManagedObjectModel 的配置。【英文标题】:How to set configuration of NSManagedObjectModel while creating Entites programatically. 【发布时间】:2018-09-15 21:52:28 【问题描述】:

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

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

让 managedObjectModel : NSManagedObjectModel = NSPersistentContainer(name: "Nequore").managedObjectModel

managedObjectModel.setEntities(arrEntities, forConfigurationName:"Default")

我正面临与模型配置相关的崩溃,该配置表明

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

感谢您的时间和考虑。

【问题讨论】:

【参考方案1】:

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

您的声明 let managedObjectModel 正在创建一个持久容器(核心数据堆栈),包括一个托管对象模型,它可能是空的(没有实体),我猜创建持久容器是 使用 以这样的方式模型,根据该文档,它不应再被编辑。尝试首先创建您的托管对象模型,完成所有实体,然后然后将该模型传递给NSPersistentContainer init(name:managedObjectModel:)

【讨论】:

以上是关于如何在以编程方式创建实体时设置 NSManagedObjectModel 的配置。的主要内容,如果未能解决你的问题,请参考以下文章

如何在以编程方式创建的 UIButton 上添加 padding-left?

为啥我们不能在以编程方式设置初始视图控制器时以编程方式在视图控制器之间跳转?

UIPickerView 委托在以编程方式创建时从不调用

如何在以编程方式制作滚动视图时解决此问题?

IOS5 - 如何在以编程方式创建的视图中播放视频?

如何在以编程方式创建的 UIPicker Delegate 中返回选定的值