Objective-c枚举对象到字符串

时间:2012-06-12 08:40:41

标签: objective-c enums

  

可能重复:
  Convert objective-c typedef to its string equivalent

我有一个枚举声明如下:

typedef enum MODE {
    FRAMED, HALFPAGED, FULLPAGED
} MODE;

有没有办法将FRAMED / HALFPAGED / FULLPAGED转换为字符串。

我知道C ++有能力使用:

static String^ GetName(
    Type^ enumType,
    Object^ value
)

是否会有Objective-C的等价物?

2 个答案:

答案 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";
}