冷门_可变参数方法
冷门_可变参数方法
在 OC
中用的比较少,重载接口用的比较少(个人)。即使有重载也可以用 id 来代替。
- (Student *) newStudentWithParams:(Student *)originalS, ... {
NSString *returnS;
va_list params; // 存放参数地址
va_start(params, originalS); // 初始化 params,当前 params 指向第一个参数 originalS
if (originalS) {
for (;;) { // 遍历参数的死循环
// 这里你可以对不同情况下的参数做不同的处理
Student *s = va_arg(params, Student *); // 通过 params 来遍历参数, va_arg 的第二个参数用来计算参数数组中每个参数所占用的地址长度, 方便 params 进行遍历
if (!s) { // 当参数遍历结束后 va_arg 会返回 NULL
break;
}
}
}
va_end(params); // 置空 params
// 这里可以根据不同的情况作不同的处理
if (returnS == nil) {
return originalS;
}
return returnS;
}
资料:
va_list
va_start 函数介绍