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

    说明:

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

  • 相关阅读:
    架构师时间~白话OAuth2
    vue前端各种问题
    windows命令行导入sql
    正则表达式概述
    XPath语法 在C#中使用XPath示例
    面试宝典
    Repository,UnitOfWork,DbContext(1)
    EF Code First:实体映射,数据迁移,重构(1)
    表单常用的正则表达式
    Lambda表达式
  • 原文地址:https://www.cnblogs.com/janken/p/2427647.html
Copyright © 2011-2022 走看看