Objective-C:我应该在哪里以及如何声明枚举?

时间:2011-08-02 11:59:21

标签: objective-c enums

美好的一天,朋友们。 我是Objective-C的新手。我想在课堂上使用枚举并将其公之于众。 我已经了解如何声明枚举(http://stackoverflow.com/questions/1662183/using-enum-in-objective-c),但我不明白我应该在哪里声明它们。

我试过了:

@interface MyFirstClass : NSObject {
typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;
}

或:

@interface MyFirstClass : NSObject {
@public
   typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;
}

但是编译器会抛出错误:“在typedef之前预期的说明符 - 限定符列表”。

怎么了?

3 个答案:

答案 0 :(得分:11)

·H

typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;

@interface MyFirstClass : NSObject {

 MyTypes type;

 }

.m文件

   type=VALUE_A;

答案 1 :(得分:7)

@interface声明之外。

typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;

@interface MyFirstClass : NSObject {
}

@end

答案 2 :(得分:3)

您可以创建一个头文件(* .h)并执行以下操作以匹配您的枚举变量。

//  EnumConstants.h


#ifndef EnumConstants_h
#define EnumConstants_h

typedef enum {
    VEHICLE,
    USERNAME
} EDIT_TYPE;

typedef enum {
    HIGH_FLOW,
    STANDARD_FLOW
} FLOW_TYPE;


#endif

用途:

#import "EnumConstants.h"

UISwitch *onOffSwitch = [[UISwitch alloc] initWithFrame:CGRectMake(self.tableview.frame.size.width-75, 26, 0, 0)];
onOffSwitch.tag =STANDARD_FLOW;