追加される設定は次の4つ。
CLANG_WARN_CONSTANT_CONVERSION = YES; CLANG_WARN_ENUM_CONVERSION = YES; CLANG_WARN_INT_CONVERSION = YES; CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
CLANG_WARN_CONSTANT_CONVERSION
定数代入(変換)の問題を知らせてくれる。たとえばこんなケース。
NSInteger value = 4294967296;このケースは long long→NSInteger変換となり、実際は 0が入ってしまう。この設定があると警告が出る。
CLANG_WARN_ENUM_CONVERSION
異なるEnum設定値を使った時に警告を出してくれる。たとえばこんなケース。
typedef enum { UYLMagicUser = 0, UYLMagicAdmin = 1 } UYLMagicValue; typedef enum { UYLNonMagicUser = 10, UYLNonMagicAdmin = 11 } UYLNonMagicValue; - (void)doSomeMagic:(UYLMagicValue)magicType { // }と定義されていた時
[self doSomeMagic:UYLNonMagicAdmin];とすると警告が出る。
CLANG_WARN_INT_CONVERSION
ことなる整数値をポインタ型へ代入する場合、たとえばこういうケースで警告が出る。
char *pointer = 1234;
CLANG_WARN__DUPLICATE_METHOD_MATCH
同じメソッド定義が複数あった場合の警告。
− - - -
試しに Xcode4.6で新規プロジェクトを作成するとすべてYESとなっていた。
0 件のコメント:
コメントを投稿