【问题标题】:NSManagedObjectContext: undo save-operation?NSManagedObjectContext:撤消保存操作?
【发布时间】:2012-05-25 13:32:03
【问题描述】:

我想撤消我的 NSManagedObjectContext 上的保存操作;我一直认为,这就是 NSUndoManager 的用途,但似乎撤消保存操作不起作用......

一个例子:

[[NSManagedObjectContext MR_contextForCurrentThread] setUndoManager:[NSUndoManager new]];
[[NSManagedObjectContext MR_contextForCurrentThread].undoManager beginUndoGrouping];
MyDataObject *mdo = [MyDataObject MR_createInContext:[NSManagedObjectContext MR_contextForCurrentThread]];
mdo.name = @"...";
[[NSManagedObjectContext MR_contextForCurrentThread] save:nil];
[[NSManagedObjectContext MR_contextForCurrentThread].undoManager endUndoGrouping];
[[NSManagedObjectContext MR_contextForCurrentThread].undoManager undo];

但是插入并没有撤消......有没有办法做到这一点?比如交易?

【问题讨论】:

    标签: core-data ios5 nsundomanager


    【解决方案1】:

    您能否使用子托管对象上下文进行保存(将其推送到父对象,但不触及磁盘上的文件),然后如果您想撤消它,则对父对象执行回滚?

    我认为调用save 就像提交自上次保存以来所做的所有更改,而rollback 就像丢弃它们。一旦您提交了更改,它们就会在持久存储中,并且不会保留任何事务日志以支持回滚。

    您能否详细解释一下为什么在交易过程中需要save

    【讨论】:

      猜你喜欢
      • 2012-10-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多