zoukankan      html  css  js  c++  java
  • iOS中与Java中的方法参数不固定时在方法体内处理这些参数的方式对比

    这种方法在Java中也存在,但是获取参数的时候比较方便,将参数当成一个数组就可以方便的拿到各个参数的值,但是在iOS中确与这不相同,稍微复杂一点。

    首先说说Java中的这种方法的声明和调用:

    方法的声明:

    1 private void testFunc(String... params) {
    2 for(int i = 0; i < params.length; i++) {
    3 System.out.println(params[i]);
    4 }
    5 }

    方法的调用:

    1 testFunc("1","2","3","4");

    说明:

    testFunc的方法也可以不传入参数,这个时候方法的参数params并不是null,而是一个长度是0的数组。

    在iOS中代码如下:

     1 -(void) testFunc:(NSString*)params,...
    2 {
    3 NSString* curStr;
    4 va_list list;
    5 if(params)
    6 {
    7 NSLog(@"%@", params);//取得第一个参数的值
    8 va_start(list, params);
    9 while ((curStr= va_arg(list, NSString*)))) {//从第2个参数开始,依此取得所有参数的值
    10 NSLog(@"%@", curStr);
    11 }
    12 va_end(list);
    13 }
    14 }

    方法的调用:

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

    说明:

    在这个方法内值得注意的是,第一个参数的获取方式和其他的参数不一样。

  • 相关阅读:
    MySQL数据库中的delete语句
    记录Jmeter集成Jenkins运行Ant做接口监听
    测试数据随机生成器(离线)
    python正则表达式
    字典、数据结构化
    python复制、浅拷贝、深拷贝
    python-list:列表-元组-字符串
    自动部署shell(结合Jenkins)
    linux问题记录
    Python操作excel
  • 原文地址:https://www.cnblogs.com/janken/p/2427647.html
Copyright © 2011-2022 走看看