美文网首页
字符串和枚举之间的转换

字符串和枚举之间的转换

作者: 闻道刘 | 来源:发表于2017-08-30 06:54 被阅读22次

希望把字符串变成枚举,调用方不需要去输入或查找相应的字符串定义。
经查找,可以用宏进行处理,对搜集的例子行了整理并加上注释,如下:

//enum
typedef enum : NSUInteger {
    AVCapturePresetQualityHigh = 0,
    AVCapturePresetQualityNormal,
    AVCapturePresetQualityLow,
} AVCaptureSessionPresetQuality;

//declare an array contains all cases
const NSArray *__captureQuality;

//macro for array creation 
#ifndef AVCaptureQuality
#define AVCaptureQuality \
(__captureQuality == nil ? __captureQuality = \
@[AVCaptureSessionPreset1920x1080,\
AVCaptureSessionPreset1280x720,\
AVCaptureSessionPreset640x480]\
: __captureQuality)
#endif

//enum and string transform
//enum -> string
#ifndef kGetCapturePresetString
#define kGetCapturePresetString(idx) \
([AVCaptureQuality objectAtIndex:idx])
#endif
//string -> enum
#ifndef kGetCapturePresetEnum
#define kGetCapturePresetEnum(string) \
([AVCaptureQuality indexOfObject:string])
#endif

usage:
NSString *presetQuality = kGetCapturePresetString(AVCapturePresetQualityHigh);

参考链接

相关文章

  • 字符串和枚举之间的转换

    希望把字符串变成枚举,调用方不需要去输入或查找相应的字符串定义。经查找,可以用宏进行处理,对搜集的例子行了整理并加...

  • 使用宏定义实现OC枚举值到字符串转换

    OC枚举值到字符串转换 缘起 Objective-C中经常需要将枚举转换成对应的字符串类型。平时一般用if或swi...

  • Modern C++ 中枚举与字符串转换技巧

    在 Java、C# 这样的语言中,从枚举转换成字符串,或者从字符串转换成枚举,都是很常见的操作,也很方便。比如下面...

  • OC枚举值到字符串转换

    OC枚举值到字符串转换 Swift枚举类型引入了Raw Value的概念,每个枚举case的Raw Value可以...

  • python2和python3区别

    bytes和hex字符串之间的相互转换 在Python2.7.x上,hex字符串和bytes之间的转换是这样的: ...

  • Java 中基本类型和字符串之间的转换

    Java 中基本类型和字符串之间的转换 在程序开发中,我们经常需要在基本数据类型和字符串之间进行转换。 其中,基本...

  • 时间转成毫秒数

    日期时间字符串和毫秒之间的相互转换

  • 2019-03-14JavaSE工具类2

    Date类 SimpleDateFormat 类完成字符串与日期之间的转换 字符串与日期之间的转换例题 Math类

  • atob.go

    功能 字符串和布尔类型之间的一些转换 代码和注释

  • Python-技巧总结

    1、枚举——enumerate 2、字典生成 3、eval是把字符串转换成列表,字典和元组 语法格式:eval(s...

网友评论

      本文标题:字符串和枚举之间的转换

      本文链接:https://www.haomeiwen.com/subject/tylzdxtx.html