2014年1月30日木曜日

[iOS][Objective-C]グローバル変数のススメ


どうも。

グローバル変数を使う場合。
・xxx-Prefix.pchに定義する
・AppDelegateに定義する

個人的には、
xxx-Prefix.pchに書くのが、
手間が少なくて好き。

AppDelegateだと、
あまり直感的でないし、
使うのもちょっと手間(´・ω・`)

AppDelegateのプロパティにしといて、
使う時には、
いったんAppDelegateを取得して、
そいつのプロパティにアクセスするようにする。

AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
NSString *str = [appDelegate getXXX];

みたいな感じ。

一方、
xxx-Prefix.pchは、
グローバルなヘッダなので、
変数を定義しておくだけで、
アプリのどこからでも参照出来る。

「グローバル変数を使うのはちょっと…」
などと言う人も多いですが。

iOSで作るアプリ程度の規模で、
そんな堅苦しく考える必要もないし、
そもそも、
必要以上に使わない方がいい、
みたいなセオリーは確かに正しいけど、
必要なら使えばいいと思う。

大体、
グローバル変数を過剰に白い目で見る人に限って、
スコープが理解出来てなくて、
画面ローカルな変数を妙な引き回し方してたり、
やたらとシングルトン(もどき)やexternとか使ってたりして、
そんなんだったらポリシーを決めてグローバル変数使った方が、
よっぽど整理されたコードになる気がする。

もったいないのは、
グローバル変数を使えば即解決する問題を、
「グローバル変数はアレだから…」
なんて迷ってる時間。
仕組みとして用意されているのだから、
必要なときは堂々と使えばいい。

もちろん…。
なんでもかんでもグローバル変数にすればいい、
というものでもないけど(´・ω・`)


それでは。
ちゃお☆


まこぴー。