第
首先,枚举是编译类型结构。
其次,你有一个范围界定问题。因为您正在定义if
和else
范围内的枚举类型。它不会在if..else..
声明之外具有可视性。
您需要找到一种不同的方式来区分基于状态的索引。
更新基于OP的后续的问题:
OK,你需要地图的某种。例如,你可以这样做:
定义你的枚举。
enum {
Form_FirstName = 0,
Form_NamePrefix,
Form_LastName,
Form_Email,
Form_Phone
};
假设你的类有一个indexes
伊娃与通常@property
和@synthesize
,请设置您的索引:
if (foo>0) {
self.indexes = [NSArray arrayWithObjects:[NSNumber numberWithInt:Form_FirstName],[NSNumber numberWithInt:Form_NamePrefix],[NSNumber numberWithInt:Form_LastName],[NSNumber numberWithInt:Form_Email],[NSNumber numberWithInt:Form_Phone],nil];
}
else {
self.indexes = [NSArray arrayWithObjects:[NSNumber numberWithInt:Form_FirstName],[NSNumber numberWithInt:Form_LastName],[NSNumber numberWithInt:Form_Email],[NSNumber numberWithInt:Form_Phone],nil];
}
在其他地方,当你需要一个枚举领域转化为一个索引:
NSInteger index = [self.indexes indexOfObject:[NSNumber numberWithInt:<Form Enumeration Value>]];
编译器说什么? – onnoweb