VALIST是C语言解决变参问题的一组宏,在头文件
- (NSMutableArray *)mutableArrayWithArgs:(NSString *)args, ... {
NSMutableArray * array = [NSMutableArray array];
if (args) {
NSString *tmpStr;
//定义一个具VA_LIST型的变量,这个变量是指向参数的指针
va_list strings;
//用VA_START宏初始化刚定义的VA_LIST变量
va_start(strings, args);
[array addObject:args];
//循环遍历追加
while ((tmpStr = va_arg(strings, id)) != nil) {
[array addObject:tmpStr];
}
//用VA_END宏结束可变参数的获取
va_end(strings);
}
}
调用:
NSMutableArray *array = [self mutableArrayWithArgs:@"say", @"333", @"abc",nil];
输出结果:
array = (
say,
333,
abc
)