iOS开发中有时需要给方法传入不定个数的参数,即动态参数绑定,编写动态参数方法之前,有几个C语言函数需要了解一下
va_list //
声明一个指向动态参数列表的指针
va_start(param,test);
//
获得参数地址,即让param指向test
va_arg(param, id)//
指向动态参数列表的下一个参数,id是参数类型
va_end(param)
//
操作完成,将指针置空
- (void)paramsTest:(id)test,...
{
va_listparam; //指针,指向可变参数列表
va_start(param,test); // param指向第一个参数test
的地址
//判断参数列表是否为空,也就是说至少必须要有一个参数,下面语句才会执行
idarg = test;
while(arg){ //
遍历参数列表,当遍历到nil时,跳出循环
//在此处插入要要执行的代码,对每个参数进行相关操作
NSLog(@"%@",arg);
arg = va_arg(param,id);
}
va_end(param);
//函数结束将参数列表指针置空
}
NSString* a = @"a";
NSString* b =
@"b";
NSString* c =
@"c";
[test paramsTest:a,b, c,
nil];