纳木那咔 发表于 2013-1-26 12:29:09

Objective-C可变参数函数

首先作为一个coder 很多时候会遇到自己不能解决的问题需要上网查资料,
因为没有学过多少c语言,所以这方面只能请求网上的前辈,然后就看了关于 “Objective-C可变参数函数”的文章,可惜网上只有转载,其实就是1篇文章而已。
而且不知道我自己水平没能理解 还是演示demo就有问题,或者大家都没发现的一个问题。这里重新按照自己的理解重新写一个使用oc可变参数函数的方法。本人能力有限,如果遇到错误或代码问题,麻烦大家指出
 
 
-(NSArray *)actionUsePic:(id)actionNum, ... {    NSMutableArray *argsArray = [ init];   va_list params; //定义一个指向个数可变的参数列表指针;   va_start(params,actionNum);//va_start得到第一个可变参数地址,    id arg;      if (actionNum) {      //将第一个参数添加到array      id prev = actionNum;      ;            //va_arg 指向下一个参数地址         //这里是问题的所在 网上的例子,没有保存第一个参数地址,后边循环,指针将不会在指向第一个参数      while( (arg = va_arg(params,id)) )         {            if ( arg ){                ;            }            }      //置空      va_end(params);         //这里循环 将看到所有参数      for (NSNumber *num in argsArray) {            NSLog(@"%d", );      }    }    return argsArray;    }  
//调用测试,      ,      ,      ,       nil];  
在调用的时候要在参数结尾加nil
关于 va_list  va_start va_arg va_end 几个宏
 
 
va_list params; //定义一个指向个数可变的参数列表指针;
 
va_start(params,actionNum);//va_start  得到第一个可变参数地址,
 
va_arg(params,id);//指向下一个参数地址 
 
va_end(params); //置空指针
页: [1]
查看完整版本: Objective-C可变参数函数