Objective-c:在方法中访问可变参数
可能重复:
如何在Objective-C中创建变量参数方法
Objective C中可变数量的方法参数 – 需要一个例子
以下是具有可变参数的方法的示例。
- (void)numberOfParameters:group,... { NSLog(@"%@",group); }
在上面的方法中,我知道访问第一个可变参数。 你能帮助我访问其他人吗?
我正在阅读ObjC.pdf并且我正在阅读第35页,行号是4
看到这个几乎相同的问题
-(void)yourMethods:(id)string1, ...{ NSMutableArray *arguments=[[NSMutableArray alloc]initWithArray:nil]; id eachObject; va_list argumentList; if (string1) { [arguments addObject: string1]; va_start(argumentList, string1); while ((eachObject = va_arg(argumentList, id))) { [arguments addObject: eachObject]; } va_end(argumentList); } NSLog(@"%@",arguments); }
最后用nil参数调用它:
[object yourMethods:arg1,arg2,arg3,nil];// object can be self
一:它们不被称为“组参数”(据我所知),而是可变参数。
二:C标准库头stdarg.h
为此目的提供数据类型和宏(这就是为什么我通常建议先制作普通的’ANSI C,然后制作最好的iPhone App Ever(TM) ……)
#include - (void)numberOfParameters:(int)num, ... { int i; va_list args; va_start(args, num); for (i = 0; i < num; i++) { SomeType param = va_arg(args, SomeType); // do something with `param' } va_end(args); }
这是关于这个主题的一个相当好的解释 。