記事一覧

Objective-Cでクラス変数

Objective-C はいわゆるクラス変数というのがないから、それ相当のものが必要なら static 変数を定義してそのファイル内で静的に確保される変数を作りなさい、というのだけど、いざそのようにしてみると一応動くものの "defined but not used" という警告がやたらめったら出る。
なんじゃいこれは、と思って調べたら出てきた。

http://stackoverflow.com/questions/1603246/why-is-xcode-reporting-a-defined-but-not-used-warning-for-my-class-variable

static変数宣言をヘッダファイルの方に書いてしまうと #import で呼ばれるたびに変数を確保してしまうんだそうで。
僕のプロジェクトはかなり #import が入り乱れているので(二重取り込みを気にしなくていいから基本多めに書いてしまう)、static 変数ひとつあたり10個とか警告が出る;

解決策は、static 変数を .m ファイルの方に書くこと。
なーんだ簡単。