2011-07-20 12 views
0

いくつかのnibファイルがあり、ユーザーがボタンを何回クリックしたかを追跡する必要があります。メソッドの中で私は明らかにカウンタがint変数であると仮定してcounter++;のようなものを含めるでしょう。しかし、私の問題は、すべてのnibファイルがその変数にアクセスできるように、その変数をどこで定義するかわからないことです。グローバル変数を作成するiPhone/iPad

私が試みたのは、AppDelegate.hと.mファイルでint変数カウンタを定義することでしたが、他の.mファイル内でその変数にアクセスすることはできませんでした。

または、main.mファイルで作成する必要があります。

答えて

3

私は2つの選択肢を知っている:

  1. はAppDelegateを使用してください。他のクラスがAppDelegateにアクセスするには、#importが必要です。これらのクラスがAppDelegateの変数とメソッドにアクセスするためには、それらをヘッダーファイル(.h)で宣言する必要があります。
  2. シングルトンを使用します。クラスは「共有」クラスにアクセスし、その共有クラスの変数とメソッドにアクセスします。詳細については、http://getsetgames.com/2009/08/30/the-objective-c-singleton/を参照してください。
+0

+1。 – Perception

2

一般に、グローバル状態はbadとみなされます。アプリのデリゲートにアクセスするには

は簡単です:シングルトンアイデア

MyAppDelegate* delegate = [[UIApplication sharedApplication] delegate]; 
+1

状況によっては問題があるかもしれませんが、時にはその使用が避けられません。また、使用している言語によって異なります。 –

+0

私は「避けられない」と言っていないでしょう。一度あなたがその穴に落ちたら、そこから出るのは非常に難しい/痛いです。私はこの地域で聖人ではない、私は簡単な方法を割り当てます...しかし、これらのタイプの習慣は、 "遅かれ早かれ、お尻に私たちをかみます。 –

関連する問題