0

通常,使用可变参数的方法(和函数)似乎将其作为第二个参数,如下所示:

- (void)setContentsWithFormat:(NSString *)formatString, ...;

是否可以声明此方法,以便可变参数是此方法的第一个也是唯一的参数?如果是这样,它的语法是什么?

我试过了:- (void)setContentsWithArguments:(...)但这没有用。

4

2 回答 2

2

不,这是不可能的。第一个参数实际上是告诉可变参数函数如何访问附加参数的参考点。因此,该va_start函数将第一个方法参数(或者更确切地说,veridic 之前的参数)作为其参数:

- (void)doSomethingWithStrings:(NSString *)firstString, ...
{
    va_list vList;
    va_start(vList, firstString);
    ... blah blah
}
于 2013-05-28T22:17:15.640 回答
0

似乎GCC使用以下语法支持它:

- (void)setContentsWithArguments:...

但是 LLVM 没有。

于 2013-08-15T06:48:20.657 回答