您的位置:首页 > 移动开发 > Objective-C

Objective-C中将枚举转换成NSString的一种思路

2015-11-13 02:14 656 查看
Objective-C中经常需要将枚举转换成对应的字符串类型。

这里提供一种思路,可以少写很多代码。

灵活利用C宏中的#来字符串化操作。(#在C中表示将之后的传入参数当作字符串处理,相当给参数左右加了“”)

#define ENUM_TO_CSTR_CASE(enumType)   case enumType:
return(#enumType);

  

那么在实际代码中,先将枚举类型转换成C字符串,然后再将C字符串转换成NSString就行了。

贴上部分代码:

typedef enum : NSUInteger {

    enumType1,

    enumType2,

    enumType3,

} enumType;

const char *cEnumStr(enumType type) {

switch (type) {

  ENUM_TO_CSTR_CASE(enumType1)

       
ENUM_TO_CSTR_CASE(enumType2)

       
ENUM_TO_CSTR_CASE(enumType3)

        default:break;

}

NSString *enumStr = [NSString stringWithCString:cEnumStr(enumType1) encoding:NSASCIIStringEncoding];
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: