Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/103.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 核心数据中可变和不变的托管对象模型之间有什么区别?_Ios_Objective C_Cocoa Touch_Core Data_Restkit - Fatal编程技术网

Ios 核心数据中可变和不变的托管对象模型之间有什么区别?

Ios 核心数据中可变和不变的托管对象模型之间有什么区别?,ios,objective-c,cocoa-touch,core-data,restkit,Ios,Objective C,Cocoa Touch,Core Data,Restkit,在阅读了有关RestKit的文档后,我对createpersistentstorecordinator方法感到困惑,因为该方法的描述中有下一个警告: **Warning:** Creating the persistent store coordinator will render the managed object model immutable. Attempts to use functionality that requires a mutable managed objec

在阅读了有关
RestKit
的文档后,我对
createpersistentstorecordinator
方法感到困惑,因为该方法的描述中有下一个警告:

**Warning:** Creating the persistent store coordinator will
render the managed object model    immutable. Attempts to 
use functionality that requires  a mutable managed object model 
after the persistent store coordinator has been created
will raise an application error.
我没有理解它是什么意思
不可变的
托管对象模型?无论是在官方
核心数据
文档中还是在互联网上,我都找不到关于这个话题的任何信息。有人能给我解释一下
可变
不可变
托管对象模型之间的区别吗?为什么创建持久存储协调器会呈现不可变的托管对象模型?什么功能需要可变的托管对象模型?
提前感谢。

您可以在代码中更改NSManagedObjectModel(例如添加实体和属性),据说它是可变的。但是,一旦将对象模型附加到持久性存储协调器,就不允许再对其进行更改—它已变得不可变

以下文件中也对此进行了说明:

编辑模型以编程方式管理的对象模型是可编辑的 直到对象图管理器(托管对象)使用它们 上下文或持久存储协调器)。这允许您创建 或者动态地修改它们。然而,一旦模型被使用,它就会 不能改变。当对象 manager首先使用一个模型获取数据,整个模型都是这样 变得不可编辑。任何对模型或其任何部分进行变异的尝试 该点之后的子对象导致引发异常。如果你 需要修改正在使用的模型,创建副本,修改副本, 然后丢弃具有旧模型的对象


正如我通过编辑模型所理解的,它是假设的——改变对象图?