通常,使用可变参数的方法(和函数)似乎将它作为第二个参数,如下所示:
- (void)setContentsWithFormat:(NSString *)formatString, ...;
是否可以声明此方法,因此可变参数是此方法的第一个也是唯一的参数?如果是这样,它的语法是什么?
我尝试过:- (void)setContentsWithArguments:(...)
但这不起作用。
答案 0 :(得分:2)
不,这是不可能的。第一个参数实际上是参考点,它告诉可变参数函数如何访问其他参数。因此va_start
函数将第一个方法参数(或者更确切地说是veridic之前的参数)作为其参数:
- (void)doSomethingWithStrings:(NSString *)firstString, ...
{
va_list vList;
va_start(vList, firstString);
... blah blah
}
答案 1 :(得分:0)