我有一个看起来像这样的函数:

void myMethodImpl(id self, SEL _cmd, ...)


我将其用作类上方法的实现

class_addMethod(aClass, aSelector, (IMP)myMethodImpl, types);


因此,使用选择器aSelector将消息发送到aClass时将调用myMethodImpl get。现在,我想使用myMethodImpl中的所有参数创建一个NSInvocation。

是否有一种简单的方法可以从参数列表创建NSInvocation,还是我必须检查每个元素的类型并相应地添加它?

最佳答案

由于您要在类中添加方法,为什么不添加/更改forwardInvocation:?到那时,运行时将为您很好地构建一个调用。

10-08 06:07