Ios 如何在包含图像的NSMUTABLEARRY上执行NSNDOManager?(目标-C)

Ios 如何在包含图像的NSMUTABLEARRY上执行NSNDOManager?(目标-C),ios,objective-c,uiimage,nsmutablearray,nsundomanager,Ios,Objective C,Uiimage,Nsmutablearray,Nsundomanager,我正在创建一个iOS应用程序,用户可以在其中向图像添加效果。应用该效果后,我有一个done按钮,该按钮保存当前效果并允许用户在已经应用的效果上添加下一个效果,以便用户可以在其他效果上应用更多效果。若用户不按Done按钮,那个么他会在效果之间切换,但通过“Done”按钮,他可以对效果应用效果(希望你们能得到它!)。现在我有两个额外的按钮,名为Undo&Redo。当用户单击done按钮时,我将所有应用的效果保存在数组中 现在我想在单击undo按钮时撤消应用的效果。单击redo按钮时,执行visa v

我正在创建一个iOS应用程序,用户可以在其中向图像添加效果。应用该效果后,我有一个
done
按钮,该按钮保存当前效果并允许用户在已经应用的效果上添加下一个效果,以便用户可以在其他效果上应用更多效果。若用户不按
Done
按钮,那个么他会在效果之间切换,但通过“Done”按钮,他可以对效果应用效果(希望你们能得到它!)。现在我有两个额外的按钮,名为
Undo
&
Redo
。当用户单击
done
按钮时,我将所有应用的效果保存在
数组中

现在我想在单击
undo
按钮时撤消应用的效果。单击
redo
按钮时,执行visa versa重做操作


我知道为此我必须使用
NSUndoManager
,但我不知道从何处开始意味着我不知道如何使用
NSUndoManager
和包含图像的数组?

好吧,我用不同的方式完成了!!除了使用
NSUndoManager
之外,我刚刚使用了2个
数组
并对它们进行了编码

- (IBAction)onUndoClicked:(id)sender {    
 if ([arrUndo lastObject] == nil) {
        NSLog(@"EMPTY");
    }
    else
    {
        [arrRedo addObject:[arrUndo lastObject]];
        NSLog(@"ArrAdd %@", [arrUndo description]);

        [arrUndo removeLastObject];
        for (UIImage *obj in arrUndo) {
            if ([arrUndo lastObject] == obj) {

                _imgClicked.image =  obj;
            }
        }
    }}

- (IBAction)onRedoClicked:(id)sender {

    if ([arrRedo lastObject] == nil) {
        NSLog(@"EMPTY");
    }
    else
    {
        [arrEffectImages addObject:[arrRedo lastObject]];
        for (UIImage *obj in arrRedo) {
            if ([arrRedo lastObject] == obj) {
                _imgClicked.image =  obj;
            }
        }
    }}

请通过链接:@AshokLondhe我已经提到了这一个,但它是在斯威夫特,我不太熟悉斯威夫特,所以没有从中得到的想法。谢谢你的帮助。