删除核心数据中所有未提交的实体[重复]

Posted

技术标签:

【中文标题】删除核心数据中所有未提交的实体[重复]【英文标题】:Delete all uncommitted entities in core data [duplicate] 【发布时间】:2014-02-26 21:55:17 【问题描述】:

假设我使用 coreData 在数据库中插入了几个实体。我没有保存。如果我没有对它们的引用,如何删除所有未保存的插入实体?

好吧,我怎么看,当context.undoManagesnil 时,我不能使用[context rollback]?那很糟。 但是在[context reset] 之后,我应该如何处理所有引用和对象?如果它们在数据源中使用,我的界面会发生什么?我会崩溃吗?

【问题讨论】:

【参考方案1】:

这是 CoreData's NSManagedObjectContext 类的目的。它允许您在特定于您选择的任何目的的“便签本”中执行您的更改。如果你愿意,你可以[context save]。或者,如果你决定把东西扔掉......

[context rollback];

【讨论】:

【参考方案2】:
[managedObjectContext rollback]

将还原所有未保存的更改。

【讨论】:

如果context.undoManagernil 值有可能吗?【参考方案3】:

如果您使用父/子 NSManagedObjectContext,那么您可以创建 NSManagedObjectContext 的新实例并重新分配其父级。

如果你不这样做,那么你可以使用实例方法reset

文档重置

将接收器返回到其基本状态。

- (void)reset

所有接收者的管理对象都被“遗忘”了。如果使用此方法,则应确保同时丢弃​​对使用接收器获取的任何托管对象的引用,因为之后它们将无效。

【讨论】:

以上是关于删除核心数据中所有未提交的实体[重复]的主要内容,如果未能解决你的问题,请参考以下文章

从具有实体之间关系的核心数据中获取数据[重复]

核心数据迁移删除实体数据

将对象插入核心数据实体时处理重复项

核心数据实体布尔属性未保存在表格单元格删除中

Git one-liner 添加所有内容(包括未跟踪的文件)并提交 [重复]

删除未排序链表中的所有重复节点