1.va_list,va_start,va_arg,va_end
- (void)viewDidLoad {
[super viewDidLoad];
[self list:@"AAA",@"BBB",@"CCC",@"DDD",nil];
[self stringTest:@"AAA",@"BBB",nil];
}
- (void)list:(NSString *)string,... {
/*
# 前言:
这里有个概念:string是固定参数,不是可变参数,可变参数是指...
也就是[self list:@"AAA",@"BBB",@"CCC",@"DDD",nil];
中 @“AAA”是固定参数 @"BBB",@"CCC",@"DDD"为可变参数
*/
// 定义一个指向个数可变的参数列表指针
va_list argsList;
// 使这个argsList指针指向参数列表的第一个参数,即指针->@"BBB"
va_start(argsList, string);
while (string) {
NSLog(@"%@",string);
// 返回参数列表中指针argsList所指的参数,返回类型为type,并使指针argsList指向参数列表中的下一个参数
string = va_arg(argsList, NSString *);
}
// 清空参数列表,并置参数指针argsList无效
va_end(argsList);
}
输出结果为
image.png
2.(instancetype)initWithFormat:(NSString *)format arguments:(va_list)argList;作用
image.png
网友评论