美文网首页君赏博客
研究一下未知参数的方法

研究一下未知参数的方法

作者: 君赏 | 来源:发表于2016-12-15 14:16 被阅读9次

最近要写一个小方法让组装字符串为一个数组进行下一步的传递,直接写进数组会因为可能数组为空决定写一个多参数的方法 判断就在里面进行判断

对于之前写过测试,但是只记得VA开头,今天再次看一下。

参考文献地址 http://blog.csdn.net/edonlii/article/details/8497704

va_list参考文献地址

va_start参考文献地址

va_copy参考文献地址

va_end参考文献地址

va_arg参考文献地址

va_list是接受除第一个参数之外的其余参数数组

取值的步骤如下

  1. 利用va_list初始化一个c语言的数组
  2. 使用va_start进行参数接受
  3. 利用va_arg进行超找参数 参数的类型必须和接受的类型一致 是c语言的类型
  4. 利用va_end进行结束查找

看一下下面的例子

- (void)vaList:(NSString *)str, ... {
    va_list list; // 接受其他的参数
    va_start(list, str); // 开始查找
    if (str) { // 判断第一个参数是否存在
        NSLog(@"%@",str); // 输出第一个参数
        id arg; // 其他参数 可能是C语言的其他类型
        while (YES) {
            arg = va_arg(list, id); // 赋值
            if (!arg) { // 如果不存在就退出循环
                break;
            }
            NSLog(@"%@",arg); // 输出其他参数
        }
    }
    va_end(list); // 结束查找 一定要写va_end
}

我们就可以调用这个函数了

[self vaList:@"1",@"2",@"3",nil];

输出

2016-12-15 14:12:32.634 GearBest[14179:276358] 1
2016-12-15 14:12:32.634 GearBest[14179:276358] 2
2016-12-15 14:12:32.635 GearBest[14179:276358] 3

相关文章

  • 研究一下未知参数的方法

    最近要写一个小方法让组装字符串为一个数组进行下一步的传递,直接写进数组会因为可能数组为空决定写一个多参数的方法 判...

  • json转string后保留换行符

    研究一下后两个参数的作用

  • 03- Java集合

    一、泛型 泛型通配符:通配符表示一种未知类型,并且对这种未知类型存在约束关系。不能创建对象使用,只能作为方法的参数...

  • 核密度估计丨数析学院

    核密度估计(kernel density estimation)是非参数统计检验中的重要方法之一,常用于估计未知的...

  • 机器学习算法之MLE && MAP(转)

    极大似然估计(MLE) 最大似然估计提供了一种给定观察数据来评估模型参数的方法,即:“模型已定,参数未知”。简单而...

  • 一、Java高级特性(泛型)

    一、为什么要使用泛型? 当我们在创建某个方法的时候,参数、返回值类型未知,创建某个类中的成员的时候,类型也是未知的...

  • 有参方法和包

    定义带参数的方法参数列表:(数据类型 参数1,数据类型 参数2…) 调用带参数的方法 调用方法,传递的参数要与参数...

  • 基金定投的三种方法

    研究一下指数温度定投方法

  • OC琐碎点汇总(一)

    - (void)方法名:(参数类型)参数名 方法名:(参数类型)参数名 { 具体实现代码 } *方法的调用 [对象...

  • 第九章有参方法和包

    有参方法和包 定义参数的方法 参数列表:(数据类型 参数1,数据类型 参数2) 调用参数的方法 定义带参数的方...

网友评论

    本文标题:研究一下未知参数的方法

    本文链接:https://www.haomeiwen.com/subject/plqgmttx.html