如何在Objective-C中做类常量?

时间:2012-04-22 17:52:16

标签: objective-c ios

有没有办法使用像

这样的东西
if (carRecord.status == CarRecord.statusRepaired) {  // using a class constant
    // ...
}

例如在汽车维修店中,carRecord对象的状态status将根据CarRecord类的常量进行检查。在Objective-C中,有这样的方法吗?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:6)

以下是如何在.h文件中定义它:

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

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

在MyClassName或其他任何内容中使用它只是导入它就是它。