IOS之学习笔记六(可变形参)

1、实现函数的可变形参

1)、va_list:这是一个可变类型,用于定义指向可变参数列表的指针变量

2)、va_start:让argList指向一个可变参数列表的第一个参数

3)、提取argList当前指针指向的参数,并且将指针指向下一个参数

4)、释放argList指针,结束提取

2、测试代码

Args.h

    #ifndef Args_h
    #define Args_h
    #import <Foundation/Foundation.h>
    @interface Args : NSObject
    -(void)test:(id)name, ...;
    @end
    #endif /* Args_h */

Args.m

    #import <Foundation/Foundation.h>
    #import "Args.h"
     
    @implementation Args
    -(void)test:(id)name, ...
    {
        //va_list:这是一个可变类型,用于定义指向可变参数列表的指针变量
        va_list argList;
        if (name)
        {
            NSLog(@"%@", name);
            //va_start:让argList指向一个可变参数列表的第一个参数
            va_start(argList, name);
            //提取argList当前指针指向的参数,并且将指针指向下一个参数
            NSString *arg = va_arg(argList, id);
            while (arg)
            {
                NSLog(@"%@", arg);
                arg = va_arg(argList, id);
            }
            //释放argList指针,结束提取
            va_end(argList);
        }
    }
    @end
 

更多请见:http://www.mark-to-win.com/tutorial/51989.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值