可变参数va_list

在UIAlertView的init方法中的otherButtonTitles:(NSString *)otherButtonTitles, …中会遇到可变参数。当重写该方法的时候需要使用到va_list
+ (void)functionName:(NSString*)otherString, ...{
    NSMutableArray *titleList = nil;
    if (otherString) {
        titleList = [[NSMutableArray alloc] init];
        [titleList addObject:otherString];

        va_list list;
        va_start(list, otherString);
        NSString *title = nil;
        while(YES) {
            title = va_arg(list, NSString *);
            if (title == nil) {
                break;//结束
            }
            [titleList addObject:title];
        }
        va_end(list);
    }

}
百科解释:
va_list list:定义一个指向个数可变的参数列表指针;

va_start(list, otherString):otherString为第一个参数,也就是最右边的已知参数,这里就是获取第一个可选参数的地址.使参数列表指针指向函数参数列表中的第一个可选参数,函数参数列表中参数在内存中的顺序与函数声明时的顺序是一致的。

va_arg(list, NSString *):返回参数列表中指针所指的参数,返回类型为NSString,并使参数指针指向参数列表中下一个参数。

a_end(list):清空参数列表,并置参数指针args无效。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值