我们可以保存一个特定的 NSManagedObject 吗?

Posted

技术标签:

【中文标题】我们可以保存一个特定的 NSManagedObject 吗?【英文标题】:Can we save a particular NSManagedObject? 【发布时间】:2013-10-18 07:44:04 【问题描述】:

我们可以保存一个特定的NSManagedObject 而不是整个NSManagedObjectContext 吗?

【问题讨论】:

你需要达到什么目标? 【参考方案1】:

没有。保存托管对象上下文会保存对上下文所做的所有更改,并且有 没有用于保存单个对象的 API。

您或许可以做的是创建一个单独的上下文,在那里创建或修改一个对象并保存该上下文。

【讨论】:

我同意你的观点,马丁。【参考方案2】:

Core Data 不用于对象序列化,它是对象图序列化。这是一个重要的区别。一旦你有了NSManagedObject,它就会与上下文相关联,Core Data 会在上下文级别处理保存,因为这是保证任何类型的对象图一致性的唯一方法。换句话说,您不能保存单个对象,因为如果它们与其他对象有关系,您还需要保存这些对象,并且它会迅速级联到整个图表。

您似乎担心崩溃恢复。如果应用程序崩溃并且用户重新启动它,他们是否希望只看​​到他们保存的项目,或者崩溃前屏幕上的所有内容?如果是前者,您应该在保存时删除它们并将它们从用户视图中删除(带有一些动画),如果是后者,您应该提交所有内容,并可能在其他时间删除您不感兴趣的对象.

【讨论】:

以上是关于我们可以保存一个特定的 NSManagedObject 吗?的主要内容,如果未能解决你的问题,请参考以下文章

OffsetDateTime 到 ZonedDateTime - 带有特定的 ZoneId

如何在 MySQL 中获取特定表的主键“列名”

如何从特定层获取输出张量?

闪烁词法分析器帮助。试图保存特定的线路信息以备后用

如何保存具有特定文件大小的图像?

如何为客户特定数据使用通用变量