0
例を使用するときに警告するclangフラグはありますか?ブール式ではなくif
ステートメントのオブジェクト?条件式でブール式としてオブジェクトを使用している場合に警告します
私はこれについてはGoogleで検索しましたが、何も見つかりませんでした。
NSNumber *n = @(YES)
if (n) { // should be n.boolValue instead of n
...
}
私はXcodeで「暗黙のブール変換」オプションを見つけましたが、それは(私はダブルチェックする)ことではないようです。これは、エディタを使用すると、コアデータのクラスを生成する場合は特に、このようなミスを防ぐのに役立つでしょう。
私は、上記のようなエラーが捕捉されるように、必要に応じて "boolValue"の使用を強制したいが、暗黙的に@(NO)をNOに変換するのではない。 – iosdude
'if(!オブジェクト)'のコードを 'if(object!= nil)'に変換する必要があることを意味するならば、それは駄目ですが、私は省略形を使用しません。 – iosdude
1.「適切なところ」はどのような条件の下にあるのですか? 2.コンパイラは、参照のテストを意味するのか、参照の対象となるオブジェクトに対するメッセージ 'booleanValue'の結果のテストかを、どのように知ることができますか? 3.あなたの場合はどういう意味ですか?ソースコードだけを見ると(あなたの説明はありません)、私はそれを言うことはできません。コンパイラはできますか? 4. 'object'という表現が$ any条件でブール式になると、' object!= nil'はブール式とオブジェクト参照の比較になります。 –