我有一个枚举声明如下:
typedef enum MODE {
FRAMED, HALFPAGED, FULLPAGED
} MODE;
有没有办法将FRAMED / HALFPAGED / FULLPAGED转换为字符串。
我知道C ++有能力使用:
static String^ GetName(
Type^ enumType,
Object^ value
)
是否会有Objective-C的等价物?
答案 0 :(得分:8)
您可以实现这样的方法:
- (NSString*)modeToString:(MODE)mode{
NSString *result = nil;
switch(mode) {
case FRAMED:
result = @"FRAMED";
break;
case HALFPAGED:
result = @"HALFPAGED";
break;
case FULLPAGED:
result = @"FULLPAGED";
break;
default:
[NSException raise:NSGenericException format:@"Unexpected MODE."];
}
return result;
}
答案 1 :(得分:0)
据我所知,没有一种内置的方法来做你所要求的。
我的方法是:
- (NSString *)modeString:(MODE)mode
{
if(mode == FRAMED)
{
return @"FRAMED";
}
else if(mode == HALFPAGED)
{
return @"HALFPAGED";
}
return @"FULLPAGED";
}