iOS之VA_LIST初次使用

本文介绍了iOS开发中如何使用VA_LIST处理变参问题。通过一个实例展示了如何在方法`test:`中利用VA_LIST宏接收并处理多个不定数量的参数,最终将这些参数添加到数组中进行展示。代码实现简洁,易于理解,帮助开发者更好地理解和应用VA_LIST。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先介绍下VA_LIST,VALIST是C语言中解决变参问题的一组宏,在头文件<stdarg.h>中。

在平常我们会为了让代码更加的简洁可扩展,我们定义的方法或者函数的参数的不定的,所以,VA_LIST可以很好的解决这个问题,废话少说,上代码:

@implementation ViewController


- (void)viewDidLoad {

    [super viewDidLoad];

    NSMutableArray *array  = [selftest:@"test1",@"test2",@"test3",nil];

    NSLog(@"%@",array);

}


-(NSMutableArray *)test:(NSString *)p1,...

{

    NSMutableArray *array = [NSMutableArrayarray];

//   定义一具VA_LIST型的变量,这个变量是指向参数的指针

    va_list list;

    id tag;

//   VA_START宏初始化刚定义的VA_LIST变量

    va_start(list, p1);

//  VA_ARG返回可变的参数,VA_ARG的第二个参数是你要返回的参数的类型,如果函数有多个可变参数的,依次调用VA_ARG获取各个参数

    while ((tag = va_arg(list, id))) {

        [array addObject:tag];

    }

//  VA_END宏结束可变参数的获取

    va_end(list);

    return array;

}

@end

打印结果如下:


可见,打印出的传递的除第一个参数之外的参数,这样,我们可以在test方法中根据参数的不同而处理不同的业务逻辑。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值