Core data 如何在内存中管理NSManagedObjects

Core data 如何在内存中管理NSManagedObjects,core-data,nsmanagedobject,Core Data,Nsmanagedobject,如果多个VCs使用不同的获取限制从数据库获取数据,那么如何在内存中管理NSManagedObjects 例如,一个VC基于名称进行获取,并且只希望在tableview中显示名称,因此只保存从内存中获取的NSManagedObject中的名称数据,而不是对象的其余部分 这允许选定的数据保存在内存中,当多个VC同时保存同一数据时,如何使用内存?每个参考是否都有该数据的副本,或者NSManagedObjects的支持数据是核心数据中的单个条目 如果是这样,核心数据是否使用虚拟内存映射按需读取这些单个实

如果多个VCs使用不同的获取限制从数据库获取数据,那么如何在内存中管理NSManagedObjects


例如,一个VC基于名称进行获取,并且只希望在tableview中显示名称,因此只保存从内存中获取的NSManagedObject中的名称数据,而不是对象的其余部分

这允许选定的数据保存在内存中,当多个VC同时保存同一数据时,如何使用内存?每个参考是否都有该数据的副本,或者NSManagedObjects的支持数据是核心数据中的单个条目


如果是这样,核心数据是否使用虚拟内存映射按需读取这些单个实例,或者实际数据是否作为副本加载到内存中?

不会有任何对象副本。只要使用相同的存储/上下文,就只有一个副本(称为uniquing的功能)。还有一种称为故障处理的方法,它有助于减少核心数据中的内存占用
故障是指具有未初始化IVAR的托管对象的实例。故障可以通过多种方式触发(即IVAR初始化)。(在人际关系中特别有用)。查看此处了解更多信息:


但根据我的理解,不能只在内存中保留托管对象的一个属性(如名称数据)。整个对象都将在内存中。

不会有对象的任何副本。只要使用相同的存储/上下文,就只有一个副本(称为uniquing的功能)。还有一种称为故障处理的方法,它有助于减少核心数据中的内存占用
故障是指具有未初始化IVAR的托管对象的实例。故障可以通过多种方式触发(即IVAR初始化)。(在人际关系中特别有用)。查看此处了解更多信息:


但根据我的理解,不能只在内存中保留托管对象的一个属性(如名称数据)。整个对象都将存储在内存中。

“一个VC基于名称进行提取,并且只希望在表视图中显示名称,因此只在内存中保存从提取的NSManagedObjects中获取的名称数据,而不是对象的其余部分。”您能发布一些示例代码吗?很难确定您所描述的是什么。“一个VC基于名称进行提取,并且只希望在tableview中显示名称,因此只在内存中保存从提取的NSManagedObjects中获取的名称数据,而不是对象的其余部分。”您能发布一些示例代码吗?很难确定你在描述什么。