我有一长串#define
语句(Objective-C),这些语句被分配了唯一的整数值。
实际值无关紧要;他们只需要非零和独特。这些值用于创建NSNumbers
和switch语句。
例如:
#define FUNCTION_s 1
#define FUNCTION_a 7
#define FUNCTION_kk 3
用法:
NSArray *array = @[ @(FUNCTION_s), @(FUNCTION_a) ];
// ...
switch ( val ) {
case FUNCTION_kk:
// code
break;
}
我想简化列表,因此我不必担心实际数字或意外使用重复值。我经常重新排列列表以便于阅读,所以我已经使用过哪些数字并不总是很明显。
是否有一种方法,类似于使用枚举,会自动为每个#define
分配唯一值?
答案 0 :(得分:1)
您可以使用枚举。
typedef NS_ENUM(NSUInteger, FUNCTIONS) {
FUNCTION_s = 1,
FUNCTION_a,
FUNCTION_kk,
};
FUNCTION_a将为2,kk将为3.它是增量。
FUNCTION val;
// set val
switch(val)
{
// casese
}