私と同じように、あなたは Java スタイルの言語のバックグラウンドを持っているように思えます (ここで間違っていたらごめんなさい)。私もこれについてしばらく疑問に思っていましたが、Appleが列挙型を定義し、それらを使用してあなたが説明しているような定数を定義する方法に気付きました。
Event
例として架空のクラスを使用しましょう。
ヘッダー ファイルで、新しい列挙型を定義します。
typedef enum {
kEventType_EventName1,
kEventType_EventName2,
kEventType_EventName3
}EventType; //this is the name of the new type
etc は、EventName1
必要なイベントの実際の名前に置き換えられます (つまり、kEventType_Direct
.
これらのイベント タイプを確認する必要があるその他のクラスは、Event.h ファイルをインポートするだけで済みます。
#import "Event.h"
次にEventType
、他の変数タイプと同じように使用できます (これは NSObject ではなく、保持、解放などできないことに注意してください。int、float などの他の C タイプと同様に扱います)。
それらのクラスが Event.h ヘッダーをインポートする限り、EventType 型の変数を他のクラスのメンバーとして持つこともできます。
しかし、これにより、次のようなことが可能になります。
-(void) handleEventOfType: (EventType) evtType {
switch(evtType) {
case kEventType_EventType1 :
//stuff here
break;
//etc...
}
}
これは私がこれまでに見た中で最良の方法であり、海外では一般的に実践されている方法のようです (少なくとも私が見たほとんどのプロジェクトでは)。とにかく、それが役立つことを願っています!