1

有没有办法使用类似的东西

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

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

4

2 回答 2

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
于 2012-04-22T17:56:30.517 回答
6

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

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

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

在 MyClassName 中使用它或任何其他只需导入它就可以了。

于 2012-04-22T19:37:51.760 回答