形参个数可变的方法

1、

.m文件

@interface VarArgs:NSObject

-(void) test:(NSString *)name,...;参个数可变的方法

.h文件

-(void) test:(NSString *)name,...

{

       va_list argList;//va_list 这是一个类型,用于定义指向可变参数参数列表的指针变量

       if(name)

       {

              va_start(argList ,name);//va_start该函数让argList指向第一个可变参数列表的第一个参数,开始提取可变参数列表的参数

              NSString * arg=va_arg(argList, id);//va_arg该函数用于返回获取指针当前指向的参数的值,并将指针移动到指

              向下一个参数arg用于保存当前获取的参数。

              while(arg(如果arg不为空,继续循环提取))    {   arg=va_arg(argLIst ,id);}

              va_end(argList);//va_end结束处理可变形参,释放指针变量

       }

}

main()

[va  test:@"OC基础教程",@"疯狂IOS讲义",@"OC内存管理",nil];//可变形参实际上类似于一个数组的结构,为了保证程序能正常跳出循环,最后一个必须设置为nil


注意:长度可变的形参只能处于形参列表的最后,也就是说,一个方法中最多只能包含一个长度可变的形参。













你可能感兴趣的:(ios,面向对象编程)