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とか使ってたりして、
そんなんだったらポリシーを決めてグローバル変数使った方が、
よっぽど整理されたコードになる気がする。
もったいないのは、
グローバル変数を使えば即解決する問題を、
「グローバル変数はアレだから…」
なんて迷ってる時間。
仕組みとして用意されているのだから、
必要なときは堂々と使えばいい。
もちろん…。
なんでもかんでもグローバル変数にすればいい、
というものでもないけど(´・ω・`)
それでは。
ちゃお☆
まこぴー。