2013-08-28 16 views
5

私はAFNetworking実施を通じてつもりだったと私はこのclangのassign-enum警告は何ですか?

#pragma clang diagnostic push 
#pragma clang diagnostic ignored "-Wassign-enum" 
[request setHTTPBody:[NSJSONSerialization dataWithJSONObject:parameters options:0 error:&error]]; 
#pragma clang diagnostic pop 

AFHTTPClient:489-492

を見つけassign-enum警告が明らかにオフにされているが、私はそれが何を意味するんだろうか。

この場合、clangによってスローされる警告は何ですか?

答えて

8

打ち鳴らすプラグマの非存在下で放出された警告がある:

整数定数(別名「列挙NSJSONWritingOptions」)

列挙型 「NSJSONWritingOptions」の範囲内を見ていませんNSJSONWritingOptionsの宣言では、0の定義値がないことがわかります。

enum {  NSJSONWritingPrettyPrinted = (1UL << 0) }; typedef NSUInteger NSJSONWritingOptions; 

ドキュメントは0を渡すことを推奨しますが、NSJSONWritingNoOption = 0のようなオプションは定義されていません。したがって、可能な値として0を定義しない列挙型に定数(0)を割り当てています。

+1

ありがとうございます、今は意味があります。私はまだNSJSONWritingOptionsNone = 0というようなものが定義されていない理由は分かりません。これはおそらくよりエレガントでしょう。とにかくそれは別の質問です。 +1 –

+0

ああ私は途中でこれを見つけた。 iPhoneで。 – uchuugaka

+0

一方で、APIを実装するという観点からは意味がありません。「if(passedInOptions&NSJSONWritingOptionsNone){//純粋にデフォルトのケース}」のようなものは誰もチェックしません。とにかく不条理。それはいつも 'if(passedInOptions&NSJSONWritingOptionsCustomStuff){//カスタムのものを最初に} ... //デフォルトのものをここに'です。しかし、これは間違いなく、APIデザインの怠け者です。 –

0

プラグマを削除してビルドすると、警告が表示されます。 それ以外では、clangマニュアルを確認する必要があります。

+0

私はしばらくグーグルグーグルで、このような警告の説明を見つけることができませんでした。関連する文書へのポインタがあれば感謝します。 –

+0

私はこのフラグを使って多くのGoogle検索結果を見ることができます。 Clangは多くのGCC互換性を目指しており、フラグは多くの引数で多くあります。これを参照してください投稿投稿http://stackoverflow.com/questions/7880812/complete-list-of-clang-flags – uchuugaka

+0

私はすでにその投稿を見ました。 clangフラグのリストを指しますが、説明はありません。何か不足していますか? –

関連する問題