Expression result unused 警告を表示しないようにする

SPECIAL


コードの一部で Expression result unused 警告を発生させない

インスタンスを生成するだけで機能を発揮するクラスがあったとき、ARC 非対応の頃であればインスタンスを生成して最後に release を呼べばよかったのですけど、ARC 環境だと次のようにインスタンスが宙に浮いて見えてしまいます。

[[_EzFlashStatusBarWhenMemoryWarning alloc] init];

この場合、LLVM コンパイラ自体もこのコードが中途半端なものと解釈して、次のような警告メッセージを表示します。

Expression result unused

 

ただ、この使い方で間違いない場合、コンパイル時に警告が表示されるのは間際しいので、この時に限って "Expression result unused" を表示させないようにしてみます。

#pragma clang diagnostic push

#pragma clang diagnostic ignored "-Wunused-value"

 

[[_EzFlashStatusBarWhenMemoryWarning alloc] init];

 

#pragma clang diagnostic pop

このように #pragma clang diagnostic を使って -Wunused-value フラグをこの時だけ無効化することで、コンパイル時に警告を表示させなくて済むようになります。