http://blog.youkuaiyun.com/grozy_sun/article/details/27634575?utm_source=tuicool
仍然需要使用C标准库中的av_list
- (void)viewDidLoad {
[superviewDidLoad];
//http://blog.youkuaiyun.com/grozy_sun/article/details/27634575?utm_source=tuicool
[selflist:@"123",@"456",nil];
[selfstrFormat:@"123~~%@",@"124"];
}
- (void)strFormat:(NSString *)format,...{
va_list args;
va_start(args, format);
NSString *message = [[NSStringalloc]initWithFormat:formatarguments:args];
va_end(args);
NSLog(@"%@",message);
}
- (void)list:(NSString *)string,...{
//定义一个指向个数可变的参数列表指针
va_list args ; // typedef char* va_list;
//对args(列表指针)进行初始化,它指向可变参数表里面的第一个参数\
第一个参数是args本身,第二个参数是在变参表前面紧挨着的一个变量,即“...”之前的那个参数;
va_start(args, string);
if (string) {
NSString *otherString ;
NSLog(@"%@",string); //输出第一个字符串
while (1) {
//va_arg: 第二个参数是获取了类型。然后返回这个指定类型的值
//并把args的位置指向变参表的下一个变量位置
otherString = va_arg(args, NSString *);
if (otherString == nil) {
break;
}else{
NSLog(@"%@",otherString);
}
}
}
//va_end(arg_ptr):清空参数列表,并置参数指针arg_ptr无效
//获取完成后,需要将指针关掉,以避免发生危险
va_end(args);
}
2015-09-29 08:50:37.208多参传入[912:31285] 123
2015-09-29 08:50:37.208多参传入[912:31285] 456
2015-09-29 08:50:37.209多参传入[912:31285] 123~~124