删除核心数据中所有未提交的实体[重复]
Posted
技术标签:
【中文标题】删除核心数据中所有未提交的实体[重复]【英文标题】:Delete all uncommitted entities in core data [duplicate] 【发布时间】:2014-02-26 21:55:17 【问题描述】:假设我使用 coreData 在数据库中插入了几个实体。我没有保存。如果我没有对它们的引用,如何删除所有未保存的插入实体?
好吧,我怎么看,当context.undoManages
是nil
时,我不能使用[context rollback]
?那很糟。
但是在[context reset]
之后,我应该如何处理所有引用和对象?如果它们在数据源中使用,我的界面会发生什么?我会崩溃吗?
【问题讨论】:
【参考方案1】:这是 CoreData's
NSManagedObjectContext
类的目的。它允许您在特定于您选择的任何目的的“便签本”中执行您的更改。如果你愿意,你可以[context save]
。或者,如果你决定把东西扔掉......
[context rollback];
【讨论】:
【参考方案2】:[managedObjectContext rollback]
将还原所有未保存的更改。
【讨论】:
如果context.undoManager
是nil
值有可能吗?【参考方案3】:
如果您使用父/子 NSManagedObjectContext,那么您可以创建 NSManagedObjectContext 的新实例并重新分配其父级。
如果你不这样做,那么你可以使用实例方法reset:
文档: 重置
将接收器返回到其基本状态。
- (void)reset
所有接收者的管理对象都被“遗忘”了。如果使用此方法,则应确保同时丢弃对使用接收器获取的任何托管对象的引用,因为之后它们将无效。
【讨论】:
以上是关于删除核心数据中所有未提交的实体[重复]的主要内容,如果未能解决你的问题,请参考以下文章