我正在尝试使用 NSUndoManager 的 prepareWithInvocationTarget。我想要类似的东西
[[self.undoManager prepareWithInvocationTarget:self] doSomethingWithObject:[self.aMutableArray objectAtIndex:0]]
调用 undo
方法之前不会计算 doSomethingWithObject
的参数。换句话说,我不希望参数是当前aMutableArray
的第一个元素,而是undo
时aMutableArray
的第一个元素。
我应该查看 NSInvocation 或 NSMethodSignature 的特定部分吗?
与任何方法调用一样,这只是一个在哪里发生的问题。如果您不想现在[self.aMutableArray objectAtIndex:0]
评估,请不要将其包含在调用表达式中!相反,使调用表达式调用该方法将调用[self.aMutableArray objectAtIndex:0]
的方法:
[[self.undoManager prepareWithInvocationTarget:self]
doSomethingWithObjectAtIndex:0];
。doSomethingWithObjectAtIndex:
在哪里是[self.aMutableArray objectAtIndex:0]
被调用的地方。