まだ理解不足もあるが、たぶんObjective-Cのヘッダにはクラス変数が書けないようだ。
やりたかったのは、C++でいえばこんな感じのこと。
--- ヘッダファイル ---
class TestA {
private:
static bool mBoolVar;
public:
static bool getBoolVar() { return mBoolVar; }
};
なんでそんなことがしたかったかというと、端末が4インチかどうかを持たせたいと思ったからだ。
毎回UIScreenを呼ぶほどでもないので、起動時に4インチかどうかの結果を保持して、あとは保持した情報だけ呼んだ方が早そうだ、と思ったのだ。
じゃあ@propertyでstrongとreadonlyを指定すればいいやん、と思ったのだが、strongはオブジェクトじゃ無いとダメだ、と怒られた。
それに、@propertyだとインスタンスを作らんといかんような気がしてきた。
じゃあ、ヘッダにクラス変数を書いて、inline関数にすればいいかな、と思ったのが今回の件だった。
Cで書いて、グローバル変数にしてexternとかでもよいのかもしれないが、あんまりやりたくないので、mファイルに書くやり方にしておこう。
普通のやり方にしておけば、コンパイラがうまいこと最適化してくれるかもしれない。