当作为参数传递给Objective-C中的方法时,迭代va_list
发布时间:2020-12-16 09:44:21 所属栏目:百科 来源:网络整理
导读:我想将一个变量参数列表从一个方法(functionOne)传递给另一个方法(functionTwo).一切正常,除了我无法弄清楚如何在functionTwo中设置va_list,我可以访问va_list中的第一个参数.使用va_arg前进到va_list中的第二个参数.谢谢. - (void)functionOne:(NSString *)
|
我想将一个变量参数列表从一个方法(functionOne)传递给另一个方法(functionTwo).一切正常,除了我无法弄清楚如何在functionTwo中设置va_list,我可以访问va_list中的第一个参数.使用va_arg前进到va_list中的第二个参数.谢谢.
- (void)functionOne:(NSString *)configFiles,... {
va_list args;
va_start(args,configFiles);
[self functionTwo:args];
va_end(args);
}
- (void)functionTwo:(va_list)files {
NSString *file;
while ((file = va_arg(configFiles,NSString *))) {
...
}
}
解决方法
第一个可变参数不是传递给va_start的参数 – 它是紧随其后的参数.如果你想要functionTwo:有权访问configFiles字符串,你需要明确地传递它.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
