2011-07-13 15 views
2

私は石鹸ライブラリを使用しており、プロジェクトをApple LLVM 3.0コンパイラに切り替えると、私は数百のエラーを出しました。 1つをExept。可変引数リストの非PODタイプ

'while(eachObject .....' は私にコンパイラエラーを返します 'エラー:' va_arg 'の2番目の引数はPODタイプではない' id '[-Wnon-pod-varargs、3 ]」

私はそれはコンパイラの以前のバージョンで働いていた。渡されたオブジェクトの種類を知りませんが、この1つは少しうるさいです。

- (id)initWithObjects:(id)firstObj, ...{ 
if(self = [self init]) { 

    id eachObject; 

    va_list argumentList; 
    if (firstObj) { 
     [self.items addObject: firstObj]; 
     va_start(argumentList, firstObj); 

     while (eachObject == va_arg(argumentList, id)) { 
      [self.items addObject: eachObject]; 
     } 
     va_end(argumentList); 
    } 
} 
return self; 

}

答えて

1

の代わりにidの場合は、引数としてvoid *とcそれを別のステップでidに怒らせる。私はなぜclangがこれについて適切なものを投げているのか分かりませんが、少なくともこれを幸せにするはずです。

+0

ありがとう、魅力的なように働いた:) – jesuisbonbon

+0

すべてが解決したら、この質問に「回答済み」とマークしてください! – duskwuff

+0

ここに参考にしてください:http://builderror.com/article/47/second-argument-to-va-arg-is-of-non-pod-type – an0

関連する問題