打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
ios 动态参数例子
https://gist.github.com/ruandao/65198fb651f28bd6bf84


+ (NSString *)downloadUrlWithUserEmail:(NSString *)email, ... {
NSMutableArray *argsArr = [@[] mutableCopy];
va_list params;
va_start(params, email);
id arg;
if (email) {
//将第一个参数添加到array
id prev = email;
[argsArr addObject:prev];
//va_arg 指向下一个参数地址
//这里问题的所在,网上的例子,没有保存第一个参数地址,后面循环,指针将不会再指向第一个参数
while ( (arg = va_arg(params, id) ) ) {
if (arg) {
[argsArr addObject:arg];
}
}
// 置空
va_end(params);
}
switch ([argsArr count]) {
case 2:
{
return [self arenaUrlWithUserEmail:argsArr[0] withArenaIndex:argsArr[1]];
break;
}
case 3: {
return [self mapUrlWithUserEmail:argsArr[0] withArenaIndex:argsArr[1] withMapIndex:argsArr[2]];
break;
}
case 4: {
return [self markUrlWithUserEmail:argsArr[0] withArenaIndex:argsArr[1] withMapIndex:argsArr[2] withMarkIndex:argsArr[3]];
break;
}
default:
break;
}
return nil;
}





本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
printf 源代码 实现
变长参数
C和指针之函数之求参数列表中的最大值
avr单片机 串口实现printf(使用变参函数)
可移植printf源码
A Generic Call Function   c++ call lua
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服