OC的可变参数

OC中对数据库进行操作、输出日志的时候,常常要用到可变参数。在定义可变参数函数之前要
(1)引入头文件stdarg.h头文件;
(2)用…来表示可变函数参数;
(3)获取参数前需要定义一个va_list类型的变量,例如
va_list persons
(4)接下来我们就要取出可变参数:

va_start(persons,可变参数前面的一个变量的变量名);
...
...
f = va(persons,参数类型名);//可变参数有多少,此条语句就循环执行多少次
...
...
va_end(persons);

下面,举例进行说明:

-(NSString *)stringByApendingPathComponents:(NSString *)str, ...
{

    va_list components;
    va_start(components,str);

    NSString *address = @"www.baidu.com";

    if (str) {

        while (va_arg(components, NSString *) != nil) {
            [address stringByAppendingPathComponent:va_arg(components, NSString*)];
        }

    }

    va_end(components);

    return address;
}

va_start(components,str);为访问可变参数进行准备,让取数据的指针指向第一个可选参数。
va_arg(components, NSString *)获取可变参数的值,每次执行都可以获取下一个参数的值。
当所有的参数都获取之后, va_end(components);关闭components指针。

我们在实现的方法中调用可含参数函数时要注意,可变参数一般以nil结尾:

 [self stringByApendingPathComponents:@"picture",@"hehe.jpg",nil];
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值