1

我写了一个没有核心数据的应用程序。现在我想包含在没有核心数据的情况下实现撤消和重做的方法。
不幸的是,我在互联网、书籍等上一无所获。

我认为我有两个 NSMutableArray 应该具有堆栈的功能。
所以我称它们为 undoStack 和 redoStack。如果我做手势之类的动作,这个动作应该保存在数组中:

[undoStack addObject:gestureRecognizer];

如果我单击按钮撤消,应执行以下语句:

[undoStack removeObject: [undoStack lastObject]]; 和

[redoStack addObject: [undoStack lastObject]];

最后我有一个保存按钮,它会自动清除堆栈

这一切都很好,但是如何将所有操作保存在一个数组中?
动作如:panGesture、pinchGesture 和 rotationGesture

先感谢您

4

1 回答 1

1

将所有动作添加到NSMutableArray(panGesture、pinchGesture、rotationGesture),然后将该数组添加到undoStack数组中。并像使用一个对象一样使用它。只有当你需要使用它时,你才需要提取它。或者,如果您有4 gestures,则可以将所有手势添加到undoStack,当您需要将它们移动到时redoStack,取出最后 4 个对象并添加到redoStack

于 2012-12-05T15:58:42.820 回答