2

我正在尝试调配一个函数并使用函数 args 调用原始实现。新 IMP 的形式为:

static id WrapperFunction(id self, SEL _cmd, ...) {
     va_list args;
     va_start(args, _cmd);

     originalImp(self, _cmd, args);
     ...
}

这显然是错误的,因为args现在包含 _cmd 而...没有。

我怎样才能传递...给 originalImp?

4

1 回答 1

0

Gcc 有: http: //gcc.gnu.org/onlinedocs/gcc/Constructing-Calls.html

clang 什么都没有,你必须做汇编才能做到这一点(基本上如果你知道 originalImp 的地址,你只想“jmp”到它)。

于 2013-12-02T17:58:17.970 回答