冷门_可变参数方法
在 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;}
资料: