NSUndoManager 延迟参数评估



我正在尝试使用 NSUndoManager 的 prepareWithInvocationTarget。我想要类似的东西

[[self.undoManager prepareWithInvocationTarget:self] doSomethingWithObject:[self.aMutableArray objectAtIndex:0]]

其中,在

调用 undo 方法之前不会计算 doSomethingWithObject 的参数。换句话说,我不希望参数是当前aMutableArray的第一个元素,而是undoaMutableArray的第一个元素。

我应该查看 NSInvocation 或 NSMethodSignature 的特定部分吗?

与任何方法调用一样,这只是一个在哪里发生的问题。如果您不想现在[self.aMutableArray objectAtIndex:0]评估,请不要将其包含在调用表达式中!相反,使调用表达式调用该方法将调用[self.aMutableArray objectAtIndex:0]的方法:

[[self.undoManager prepareWithInvocationTarget:self] 
    doSomethingWithObjectAtIndex:0];

doSomethingWithObjectAtIndex:在哪里是[self.aMutableArray objectAtIndex:0]被调用的地方。

相关内容

  • 没有找到相关文章

最新更新