我对一个问题感到困惑。看一个例子:
-(void)DIYLog:(NSString *)format, ...
{
NSLog(...);
}
这只是一个有趣的例子。我们都知道我们不能将“...”作为参数传递给 NSLog。所以我很好奇将一个“可变参数”传递给另一个。我已经知道参数是通过寄存器或堆栈传递的,但是,关键是,我如何在 Objective-C 或 C 中实现它。
我想我让你误会了。NSLog 只是一个需要解释的例子。让我再做一个。这是关于将参数传递给id objc_msgSend(id self, SEL op, ...)。
-(void)DIY_msgSend:(id)target selector:(SEL)op params:(id)param, ...
{
objc_msgSend(target, op, ...);
}
所以,关键是,我如何将这些可变参数传递给另一个也需要可变参数的函数。