分类;类方法和对象方法
1.形参个数可变的方法
-(void)test:(NSString*) name, ...;
个数可变的形参只能处于形参列表的最后,一个方法中最多只能包含一个个数可变的形参。
为了在程序中获取个数可变的形参,需要使用一下关键字:
va_list:一个类型,用以定义指向可变参数列表的指针变量
va_start:一个函数,该函数制定开始处理可变参数的列表,并让指针变量指向可变形参列表的第一个参数。
va_end:结束处理可变参数,释放指针变量。
va_arg:该函数返回获取指针当前指向的参数的值,并将指针移动到指向下一个参数,
@implementation VarArgs
-(void)test:(NSString*) name,...{
//使用va_list定义一个arglist指针变量,该指针变量指向可变参数列表
va_list argList;
//如果第一个name参数存在,则处理后面参数
if(name){
//argList指向第一个可变参数列表的第一个参数,开始提取可变参数列表的参数
va_start(argList,name);
//va_arg用以提取argList指针当前指向的参数,并将指针移动到指向下一个参数
//arg变量用以保存当前获取的参数,如果参数部位nil,进入循环体
NSString* arg=va_arg(argList,id);
while(arg){
//在此提取下一个参数
arg=va_arg(argList,id);
}
//释放argList指针,结束提取
va_end(argList);
}
}
@end