2012-04-06 6 views
7

を宣言した列挙型のデータ型を使用して、私はDataClass.hObjective Cの中に別のクラスで

@interface DataClass : NSObject 
{ 
} 

enum knownTypes 
{ 
    type1 = 0, 
    type2, 
    type3, 
    UnknownType = -1 
}; 

は、私は他のクラスからの.mファイルおよびアクセスにknownTypesを指定することができます方法はあり持っています。

これはUtilクラスです。作成しているので、このクラスの値にアクセスするためのオブジェクトを作成したくありません。

例:TestClass.mでDataClass.hをインポートすると、type1、type2として列挙型の値を使用できるようになりましたが、DataClass.mの列挙型データを宣言すると、その列挙型の値を使用できませんでした。

+0

なぜUnknownTypeを下に置くのですか? –

答えて

15

これはクラスとは関係ありません。これはCの機能です

.hファイルでタイプまたは列挙型を定義する場合は、必要な場所にそれをインポートして使用できます(#import)。

.cまたは.mファイルに列挙型を定義した場合、ファイル内のその定義の後の要素だけを使用できます。

あなたのケースでは、2つの異なるファイルに同じ列挙型が必要と思われます。その使用法を別のファイル(例:knownTypes.h)に定義し、それを使用する2つのファイル(DataClass.mTestClass.m)にインポートすることです。

TestClassは、テスト目的であれば、あなたの現在の組織はOKです:列挙型はDataClass.hで宣言され、DataClass.mTestClass.mの両方がDataClass.hをインポートします。

1

いいえ、ヘッダーではなくソースファイルにenumを定義すると、そのソースファイルのみがenumで使用されているIDを使用できるようになります。 “をプライベート”のままにしておきたいが、複数のソースファイルで使用できる場合は、それを別々のヘッダーに入れて、この別々のヘッダーを両方のソースファイルに含めます。

+0

それは私がやろうとしていることです、データクラスは、ここでは別のヘッダーファイルです – Friendtam

関連する問題