美文网首页
iOS日记13-编写多参数传递方法

iOS日记13-编写多参数传递方法

作者: Mcyboy007 | 来源:发表于2017-03-21 10:39 被阅读0次

编写一些通用类的时候经常会遇到可变参数的处理。就好比 :UIAlertView的init方法中的otherButtonTitles:(NSString *)otherButtonTitles, ...可变参数

iOS实现传递不定长的多个参数的方法是使用va_list。va_list是C语言提供的处理变长参数的一种方法。在调用的时候要在参数结尾的时候加nil。使用示范:

  • (instancetype)initWithTitle:(NSString *)title otherButtonTitles:(NSString *)otherButtonTitles, ... {
    NSMutableArray *newArray = nil;
    if (otherButtonTitles) {
    //定义一个指向个数可变的参数列表指针
    va_list args;
    //让指针指向传参首地址
    va_start(args, otherButtonTitles);
    newArray = [[NSMutableArray alloc] initWithObjects:otherButtonTitles, nil];
    id obj;
    //逐一获取指针内的值
    while((obj = va_arg(args, id)) != nil) {
    [newArray addObject:obj];
    }
    //释放指针
    va_end(args);
    }
    return [self initWithTitle:title otherButtonTitles:newArray];
    }

相关文章

  • iOS日记13-编写多参数传递方法

    编写一些通用类的时候经常会遇到可变参数的处理。就好比 :UIAlertView的init方法中的otherButt...

  • html、js与原生交互

    ios方法有个缺陷,不需要传递参数得时候,要默认传递一个参数才可以

  • vue中js与ios交互postMessage问题

    window.webkit.[ios注入的对象].[方法名].postMessage([js传递给ios的参数]) ;

  • iOS 和 js 交互

    js调用iOS代码 1、iOS定义方法 2、实现方法 3、js端实现方法 js给iOS传参数 1、单个参数 2、多...

  • 第八章 使用嵌入式 Python (五)

    第八章 使用嵌入式 Python (五) 通过引用传递参数 用 ObjectScript 编写的方法中的参数可以通...

  • 邀请好友与原生交互

    点击分享交互文档 ios 点击四种不同的分享: 调用ios的方法为: handleShare() , 传递的参数为...

  • 关于block(2)

    标签: iOS 技术 接上一篇,我们继续探究block。 block作为参数传递 这在实战中定义方法传递值时经常用...

  • day15_foreach增强for循环_数组元素拷贝

    增强for循环_foreach 方法的可变参数 编写一个方法,统计一个数组传递过来的总和 数组元素拷贝

  • Java基础之数组(二)

    一、方法参数的值传递机制 传递的过程是方法被调用时,方法里的参数是以值传递的方式传递的 就是将实际参数的副本传入方...

  • Java-02 方法&继承

    方法 参数传递 值类型是值传递,对象是引用传递,传递的是地址 方法签名 方法签名由方法名和参数类型组成, 不包括返...

网友评论

      本文标题:iOS日记13-编写多参数传递方法

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