Ios 在运行时动态创建核心数据实体

Ios 在运行时动态创建核心数据实体,ios,swift,core-data,Ios,Swift,Core Data,我需要能够在运行时创建新的核心数据实体。我已经编写了以编程方式创建对象的代码,但是,我无法在运行时添加实体,因为模型是不可变的 我的问题与此帖子类似,但没有令人满意的答案: 有关更改核心数据模型的文档说明: 托管对象模型在被对象使用之前是可编辑的 图形管理器(托管对象上下文或持久存储) 协调器)。这允许您动态创建或修改它们。 但是,一旦使用了模型,就不能对其进行更改。这是 在运行时,当对象管理器首次使用 模型,则该模型的整体将变得不可编辑。任何企图 在该点之后,对模型或其任何子对象进行变异会导致

我需要能够在运行时创建新的核心数据实体。我已经编写了以编程方式创建对象的代码,但是,我无法在运行时添加实体,因为模型是不可变的

我的问题与此帖子类似,但没有令人满意的答案:

有关更改核心数据模型的文档说明:

托管对象模型在被对象使用之前是可编辑的 图形管理器(托管对象上下文或持久存储) 协调器)。这允许您动态创建或修改它们。 但是,一旦使用了模型,就不能对其进行更改。这是 在运行时,当对象管理器首次使用 模型,则该模型的整体将变得不可编辑。任何企图 在该点之后,对模型或其任何子对象进行变异会导致 要抛出的异常如果需要修改正在使用的模型, 创建副本,修改副本,然后使用 旧型号。

然而,我不清楚这到底是在说什么——一旦使用了持久存储协调器,整个核心数据模型就不能更改,或者单个实体的属性/等就不能更改

明确地说,我不想更改当前实体的属性,我只想添加新实体。在我看来,使用迁移来添加新实体似乎很奇怪

有什么想法吗


谢谢

文档非常清晰

  • 复制模型
  • 将更改应用于新副本
  • 销毁旧的MOC、持久性存储协调器以及由此创建的所有对象
  • 如有必要,应用迁移
  • 使用更新的模型创建新的核心数据堆栈(MOC、PSC等)
  • 迁移可能是一个关键点,但应该是可以做到的