5

可能重复:
将objective-c typedef转换为其等效的字符串

我有一个声明如下的枚举:

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

有什么方法可以将 FRAMED/HALFPAGED/FULLPAGED 转换为字符串。

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

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

Objective-C 是否有等价物?

4

2 回答 2

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;
}
于 2012-06-12T08:51:55.730 回答
0

据我所知,没有内置的方法可以满足您的要求。

我的方法是这样的:

- (NSString *)modeString:(MODE)mode
{
    if(mode == FRAMED)
    {
        return @"FRAMED";
    }
    else if(mode == HALFPAGED)
    {
        return @"HALFPAGED";
    }

    return @"FULLPAGED";
}
于 2012-06-12T08:51:15.983 回答