Objective c 目标C:在何处以及如何声明枚举?
朋友们,你好。 我是Objective-C的新手。我想在我的课堂上使用enum并将其公开。 我知道如何声明枚举(http://stackoverflow.com/questions/1662183/using-enum-in-objective-c),但我不知道该在哪里申报 我试过:Objective c 目标C:在何处以及如何声明枚举?,objective-c,enums,Objective C,Enums,朋友们,你好。 我是Objective-C的新手。我想在我的课堂上使用enum并将其公开。 我知道如何声明枚举(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 {
typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;
}
或:
但编译器抛出错误:“typedef之前应该有说明符限定符列表”
怎么了?在
@接口
声明之外
typedef enum myTypes {VALUE_A, VALUE_B, VALUE_C} MyTypes;
@interface MyFirstClass : NSObject {
}
@end
h
.m文件
type=VALUE_A;
可以创建头文件(*.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;
在这种情况下,枚举的可见性是什么?(我说的不是“type”变量,而是接口外部的枚举)。如果您想在其他类的代码中的某个地方使用此myTypes枚举,则必须直接或间接地在该类中导入MyFirstClass.h。因此,枚举的可见性就是它的定义位置。如果你想在你拥有的所有类中使用枚举,那么只需创建单独的EnumConstants.h文件,将它们全部放在那里,然后将它们导入到你的project-Prefix.pch中。所以你们所有的班级都能看到它。我希望它能帮助一些人。谢谢你的宏在做什么?
// 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;