核心数据和撤消错误加上没有重做

时间:2010-08-25 00:33:10

标签: cocoa core-data nsundomanager

所以问题: 我将一些项目放入编辑器区域,它创建了一个撤销分组......在幕后,因为删除项目的整个过程实际上是一组任务。 如果我然后删除任务,我可以选择撤消删除。

如果我这样做撤消,我在控制台中出错:  _endUndoGroupRemovingIfEmpty :: NSUndoManager 0x343f5a0处于无效状态,调用endUndoGrouping时没有匹配的开始

它确实将所有项目都返回到视图中,但是......从这一点开始,我的撤销堆栈搞砸了,不做正确的事情。从这一点开始,REDO甚至都不起作用。

我也尝试过只删除工作流程中的一个项目...然后撤消删除...仍然会抛出错误。

所以有两个问题: 1.为什么会发生错误。 2.为什么我的重做功能不正确,又名呢?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

问题在于我是willChange并且在-undoManagerDidUndoOrRedo中更改了一些KVO值...这是一个通知,当撤消管理器完成撤消操作时,在该通知内部(撤消状态的内部)触发系统)...所以我正在创建一些嵌套的更改错误...这搞砸了我的撤销堆栈。