加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

当作为参数传递给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字符串,你需要明确地传递它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读