2012-04-22 20 views
1

是否有使用類似如何在Objective-C中做類常量?

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

如在汽車修理店的方式,將carRecord對象的狀態status是對CarRecord類的恆定檢查。在Objective-C中,有沒有這樣的方法?

+0

這是你在找什麼? http://stackoverflow.com/a/980272/169277或這一個http://iphonedevelopertips.com/objective-c/java-developers-guide-to-static-variables-in-objective-c.html – ant 2012-04-22 17:54:30

回答

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 2012-04-22 17:57:07

+0

所以這將只在類中定義?或者他們是全球常數? – 2012-04-22 17:58:18

+0

它們僅在類中定義,並且所有那些將其導入標頭。 – CodaFi 2012-04-22 18:00:28