2012-04-22 2 views
1

、自動車修理工場のようにObjective-Cのクラス定数の作成方法は?

if (carRecord.status == CarRecord.statusRepaired) { // using a class constant 
    // ... 
} 

のようなものを使用する方法はあり、carRecordオブジェクトの状態statusCarRecordクラスの定数と照合されます。 Objective-Cでは、そのような方法がありますか?

+0

これはあなたが探しているものですか? http://stackoverflow.com/a/980272/169277またはこれ1つhttp://iphonedevelopertips.com/objective-c/java-developers-guide-to-static-variables-in-objective-c.html – ant

答えて

6

あなたは.hファイルでそれをどのように定義するかである:

typedef enum CarRecordStatus { 
    CarRecordStatusBroken = 0, 
    CarRecordStatusRepaired, 
} CarRecordStatus; 

@interface MyClassName : NSObject  
..interfacebody.. 
@end 

はちょうどそれはそれだ、それをインポートMyClassName内部または他のそれを使用してください。

7

通常、これはenumで行います。例:ここでは

//=== CarRecord.h: 
typedef enum CarRecordStatus { 
    CarRecordStatusBroken = 0, 
    CarRecordStatusRepaired 
} CarRecordStatus; 

@interface CarRecord (NSObject) { 
    CarRecordStatus _status; 
} 

@property (nonatomic, assign) CarRecordStatus status; 

@end 

//=== CarRecord.m: 
@implementation CarRecord 

@synthesize status=_status; 

- (void)someMethod { 
    if (self.status == CarRecordStatusRepaired) { 
     //... 
    } 
} 

@end 
+0

私は思います彼は列挙型を探していない、私は彼が静的な変数を意味すると思う..多分私は間違っている – ant

+0

これはクラス内でのみ定義されますか?それともグローバル定数ですか? –

+0

これらはクラス内でのみ定義され、それをインポートするものはすべてヘッダになります。 – CodaFi

関連する問題