0

我正在开发一种用户在画布上设置点的绘图应用程序。正在绘制的内容存储为 NSManagedObjects。我还启用了撤消管理器,因此用户可以通过按下按钮来撤消最后的绘图手势。

这一切都按预期工作。

然后我有一个按钮可以删除画布上的所有内容(清除画布)。当按下时,我在后台线程上进行删除操作,因为它可能需要一段时间,我想显示一个进度条。然后我将后台线程的模型对象上下文与主线程的模型对象上下文合并。这也很好。

但我希望用户只需点击撤消按钮即可撤消完整的删除操作。这是我无法做到的。

对于多线程部分,我正在关注本教程:http ://www.cimgf.com/2011/05/04/core-data-and-threads-without-the-headache/

似乎除了两个线程的合并之外,我无法撤消它(虽然它工作过一次,但我不知道为什么)。不知道我是否应该将整个事情嵌套在撤消组中。我已经尝试过,但仍然没有运气。

4

1 回答 1

1

我相信您可以使用嵌套的撤消组来做到这一点。包装您的操作并合并

-(void)beginUndoGrouping;
-(void)endUndoGrouping;

...并用于-(void)undoNestedGroup撤消。

于 2012-07-10T17:52:23.577 回答