• 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];

    说明:

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

  • 相关阅读:
    Redis 持久化
    Redis 事务
    select poll和 epoll
    jdk信任证书
    Java中的锁分类
    mysql触发器同步远程服务器上数据库
    正则表达式
    mysql主从同步
    MySQL逗号分割字段的行列转换技巧
    Mysql中文排序
  • 原文地址:https://www.cnblogs.com/janken/p/2427647.html
Copyright © 2020-2023  润新知