Why NSInvocation

3
为什么要使用NSInvocation而不是直接调用方法?我需要问这个问题,因为我不明白为什么要使用这个类。相较于像下面这样直接调用方法,使用它的优势是什么。
 [myArray addObject:myString];

额外信息: 它解决/涉及哪些具体挑战,这些挑战不能通过其他方法调用选项来解决。


1
当您在编译时不知道该如何调用时,例如未知选择器、未知参数数量、未知返回类型。 - Bryan Chen
为什么我不知道?当我开发时,我应该第一手了解类的方法,对吧?也许你说有未知因素时,还有其他的东西……能否举个例子呢?谢谢。 - naz
有一些Ruby/Python/Javascript/Lua到ObjC绑定框架。您可以使用脚本语言调用方法,在编译时您不需要了解任何内容。 - Bryan Chen
可能是NSInvocation for Dummies?的重复问题。 - Brandon
这里的答案还没有回答我的问题,所以它不会是重复的。当然,我已经阅读了那篇文章。 - naz
1个回答

3

一个用途:你可以使用它来实现一系列撤销操作 - 每个不同的操作都是一个不同的方法调用来执行撤销。你会将每个撤销操作封装为一个包含在NSInvocation对象中的方法调用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接