Objective-c没有直接提供可边长参数,需要使用C标准库中的av_list方法
+ (void)testDataWithString:(NSString *)str, ... {
va_list varList;
id arg;
if (str) {
va_start(varList,str);
while (arg = va_arg(varList, id)) {
NSLog(@"%@",arg);
}
va_end(varList);
}
}
注意输入参数最后一定要加上nil
[XXX testDataWithString:@"abc",@"bcd",@"edf",nil];
这里简单介绍下va_list va_start va_end
va_list:定义一个指向个数可变的参数列表指针
va_start(argList,statement):使参数列表指针arg_ptr指向函数参数列表中的第一个可选参数
va_end:清空参数列表