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 に答える