【发布时间】:2015-04-28 00:50:35
【问题描述】:
我需要能够在运行时创建新的核心数据实体。我已经编写了以编程方式创建对象的代码,但是,由于模型是不可变的,因此我无法在运行时添加实体。
我的问题和这个帖子类似,但是没有满意的答案:How to dyanmic create a new entity (table) via CoreData model?
有关更改核心数据模型的文档说明:
托管对象模型在被对象使用之前是可编辑的 图管理器(托管对象上下文或持久存储 coordinator)。 这允许您动态创建或修改它们。 但是,一旦使用模型,就不能更改它。这是 在运行时强制执行——当对象管理器第一次使用 模型,整个模型变得不可编辑。任何试图 在该点之后改变模型或其任何子对象会导致 要抛出的异常。 如果您需要修改正在使用的模型, 创建副本,修改副本,然后丢弃对象 旧型号。
但是,我不清楚这到底是什么意思——一旦使用了持久存储协调器,就无法更改整个核心数据模型,或者无法更改单个实体的属性/等.
明确地说,我不想更改当前实体的属性,我只想添加新实体。不得不使用迁移来添加新实体对我来说似乎很奇怪。
有什么想法吗?
谢谢!
【问题讨论】: