サウンドのためになるものです
EventType.EVENTTYPE_DIRECT
(例えばEVENTTYPE_DIRECT)あなたが指定したイベントタイプ定数を持つことができ、あなたはEventオブジェクトを持っていたと言いますあなたがJavaスタイルの言語の背景から来ているように私には(私がここで間違っていると思いますが)残念です。これについても私は不思議に思っていました。そして、Appleがenumをどのように定義しているかに注目し、記述したように定数を定義するために使用しました。
のは、一例として、架空のクラスEvent
を使用してみましょう:ヘッダーファイルで
、新しい列挙型を定義したい:EventName1
など、実際の名前に置き換えられ
typedef enum {
kEventType_EventName1,
kEventType_EventName2,
kEventType_EventName3
}EventType; //this is the name of the new type
あなたが欲しいイベント(つまり、kEventType_Direct
。
これらのイベントタイプを見る必要がある他のクラスは、Event.hファイルをインポートするだけです:
EventType
他の変数型と同じように使うことができます(NSObjectではないことを覚えておいて、保持、解放などはできません)。他のCタイプと同じように扱います:int 、floatなど)
イベントタイプの変数は、Event.hヘッダーをインポートする限り、他のクラスのメンバーとして持つこともできます。
しかし、それは、あなたがこのようなことを行うことができます:
-(void) handleEventOfType: (EventType) evtType {
switch(evtType) {
case kEventType_EventType1 :
//stuff here
break;
//etc...
}
}
私は今のところそれを行うに見た中で最高の方法だ、と一般的に海外で実施されている方法であると思われる(少なくともに私が見たプロジェクトのほとんど)。とにかく、助けてくれることを願います!
出典
2011-12-04 07:15:01
Ian
ありがとうございます。私の例 "EventType.EVENTTYPE_DIRECT"のように、最初にクラスのコンテキストを指定する必要があると思います。しかし、代わりにあなたは最初にインポートを行う必要があるので、それは少なくともグローバルではないということに基づいて作業します...ああ、ああ、あなたはかなり前にJavaで汚染されているのですよね:) – Greg
それ。私はClassName.EVENT_TYPEのようなものを手に入れたいと思っていましたが、いくつかのことを試しましたが、醜い実装には関わらないものは得られませんでした。 C++とObjective Cの場合、列挙型は行く方法です。 – Ian