1

我已经定义了一个可变参数方法

-(void)generateUserGrantDialog:(const char*)msg 
                         Title:(const char*)title 
                           Tag:(int)tag 
                       MsgData:(const char*)mData 
                        MsgLen:(int)mLen 
             CancelButtonTitle:(NSString*)cancelBtnTitle 
             OtherButtonTitles:(NSString *)firstTitle, ... 
                                           NS_REQUIRES_NIL_TERMINATION;

现在我必须遍历 va_list ,所以我编写了代码:

va_list args;
va_start(args, firstTitle);
for (NSString *arg = firstTitle; arg != nil; arg = va_arg(args, NSString*))
{   
     // code
}
va_end(args);

当我构建代码时出现错误

编译错误:在具有固定参数的函数中使用了“va_start”

谁能帮我摆脱它..

谢谢

4

1 回答 1

3

将您的代码更改为:

va_list args;
va_start(args, firstTitle);
for (; firstTitle != nil; firstTitle = va_arg(args, NSString*)) {   
    // code (using each firstTitle)
}
va_end(args);
于 2012-11-26T06:24:21.750 回答