Objective-c枚举对象到字符串

Tho*_*mas 5 enums objective-c

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

我有一个枚举声明如下:

typedef enum MODE {
    FRAMED, HALFPAGED, FULLPAGED
} MODE;
Run Code Online (Sandbox Code Playgroud)

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

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

static String^ GetName(
    Type^ enumType,
    Object^ value
)
Run Code Online (Sandbox Code Playgroud)

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

Gio*_*gio 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;
}
Run Code Online (Sandbox Code Playgroud)