我正在尝试调用一个函数并使用函数args调用原始实现。 新IMP的形式如下:
static id WrapperFunction(id self, SEL _cmd, ...) {
va_list args;
va_start(args, _cmd);
originalImp(self, _cmd, args);
...
}
这显然是错误的,因为args
现在包含_cmd而...
没有。
如何将...
传递给originalImp?
答案 0 :(得分:0)
Gcc:http://gcc.gnu.org/onlinedocs/gcc/Constructing-Calls.html
clang什么也没有,你必须做汇编才能做到(基本上如果你知道originalImp的地址,你只想“jmp”到它)。