Magical Record 手动丢弃对尚未保存到数据库的所有实体的所有更改

Posted

技术标签:

【中文标题】Magical Record 手动丢弃对尚未保存到数据库的所有实体的所有更改【英文标题】:Magical Record manually discard all changes to all entities which are not saved to database yet 【发布时间】:2013-12-24 13:56:58 【问题描述】:

我正在使用 Magical Record 库来轻松维护我的核心数据相关项目。

这里我有一种情况,我必须删除对默认上下文所做的所有更改并防止将其保存到数据库中。

问题是我没有使用任何执行保存操作的 Magical Record 方法。所以它不能很好地保存到数据库中。但它在当前上下文中维护数据。

如何清除对当前上下文或根上下文所做的所有更改?]

谢谢, 普拉提克

【问题讨论】:

【参考方案1】:

对于您不确定最终会被持久化的更改,不要使用默认上下文。最简单的方法是创建一个新的上下文。使用 MagicalRecord,创建新上下文会在您保存时自动将您的更改合并到默认上下文。如果您不想将更改保留在新上下文中,则只需将其与使用该上下文的任何对象一起释放,这些更改将被丢弃。您不必去手动撤消所有内容。当您利用多种上下文时,您要做的工作会少很多。

【讨论】:

有没有一种简单的方法可以使用magicrecord 创建一个新的上下文?或者我应该使用类似于:***.com/questions/8088030/… 的 coredata 本身? 你应该可以使用 [NSManagedObjectContext MR_context]。查看标题,那里有一些方便的方法。

以上是关于Magical Record 手动丢弃对尚未保存到数据库的所有实体的所有更改的主要内容,如果未能解决你的问题,请参考以下文章

ios Magical Record保存在UIApplicationWillTerminateNotification上

ios Magical Record 保存在 UIApplicationWillTerminateNotification

AFNetwork、Magical Record和块内保存

更改的属性未与 Magical Record 一起保存

使用最新版本的 Magical Record 保存 NSManagedContext 的正确方法

使用 Swift 3 在 Magical Record 中保存上下文时出错