等価性をチェックする代わりに変数を割り当てているときに警告を受け取る方法はありますか?比較するのではなく、誤って割り当ててしまったことが何度もありますので、警告を出していただければ幸いです。
コーディングスタイルを次のように変更せずにXcodeが警告する方法はありますか?
if (YES == aVariable) {...}
等価性をチェックする代わりに変数を割り当てているときに警告を受け取る方法はありますか?比較するのではなく、誤って割り当ててしまったことが何度もありますので、警告を出していただければ幸いです。
コーディングスタイルを次のように変更せずにXcodeが警告する方法はありますか?
if (YES == aVariable) {...}
ほとんどの場合、ステートメント=
の代わりにを使用すると、Xcodeはすでに警告を発しています。警告が表示されない場合は、使用しているXcodeのバージョン、プロジェクトの古さ、デフォルトから変更したビルド設定をお知らせください。==
if
私のテスト:Xcode 4.5.2で新しいiOSアプリを作成しましたが、ビルド設定は変更しませんでした。application:didFinishLaunchingWithOptions:
警告をトリガーするための小さなコードを追加しました。ここにあります:
コンパイラのフラグを設定することで警告を無効にすることができます-Wno-parentheses
(しかし、なぜそうしたいのですか?)。割り当ての前後に括弧のセットを追加することで、特定の場合の警告を抑制することができます。
if ((x = 7)) {
デフォルトで警告が表示されない場合が2つあります。まず、メソッドで、次のようinit
にに割り当てることができます。self
- (id)init {
if (self = [super init]) { // no warning by default
...
次に、どのような状況でも、次のnextObject
ようにセレクターの結果を割り当てることができます。
while (object = [enumerator nextObject]) { // no warning by default
このような場合、コンパイラの-Widiomatic-parentheses
フラグを設定することで警告を有効にできます。
コンパイラフラグWparentheses
でうまくいくはずです。コンパイルするために、条件付きの割り当てを括弧で囲む必要があります。Clangにはデフォルトでこのフラグが設定されています。