Как отменить и повторить обработку жестов

Я написал приложение без Core Data. Теперь я хочу включить методы для реализации отмены и повтора БЕЗ базовых данных.
К сожалению, я ничего не нашел в Интернете, книгах и т. д.

Я думал, что у меня есть два NSMutableArray, которые должны иметь функцию стеков.
Поэтому я называю их undoStack и redoStack. Если я выполняю действие, такое как жесты, это действие должно храниться в массиве:

[undoStack addObject: распознавание жестов];

Если я нажму кнопку отмены, должны быть выполнены следующие операторы:

[undoStack removeObject: [undoStack lastObject]]; и

[redoStack addObject: [undoStack lastObject]];

В конце у меня есть кнопка сохранения, которая автоматически очищает стеки

Это все хорошо, но как сохранить все действия в один массив?
Такие действия, как: panGesture, pinchGesture и rotateGesture

заранее спасибо


person Studie    schedule 27.04.2012    source источник


Ответы (1)


Добавьте все действия в NSMutableArray (panGesture, pinchGesture, rotateGesture), затем добавьте этот массив в undoStack массив. И работать с ним, как с одним объектом. Только когда вам нужно его использовать, вам нужно извлечь его. А можно например если у вас 4 gestures, то добавить все жесты в undoStack, а когда нужно будет их переместить в redoStack, взять 4 последних объекта и добавить в redoStack.

person hockeyman    schedule 05.12.2012
comment
Спасибо, я действительно впечатлен вашим ответом, я снова прокомментирую, когда попробую :), но теперь вы получаете +1 - person Studie; 08.05.2013