让枚举值与字符串一一对应

简介:

让枚举值与字符串一一对应

 

说明

统一管理字符串,可以用数值来代表字符串,其目的就是为了增加代码的可读性.

 

源码

https://github.com/YouXianMing/StringAndValue



//
//  StringAndValue.h
//  StringAndValue
//
//  Created by YouXianMing on 15/6/9.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import <Foundation/Foundation.h>

#define E_STRING(value)   [StringAndValue stringValueWithEStringAndValue:(value)]
#define E_VALUE(value)    [StringAndValue numberValueWithEStringAndValue:(value)]


typedef enum : NSUInteger {
    
    EUserSucess,
    EUserError,
    
} EStringAndValue;


@interface StringAndValue : NSObject

/**
 *  获取数值
 *
 *  @param value 枚举值
 *
 *  @return 数值
 */
+ (EStringAndValue)numberValueWithEStringAndValue:(EStringAndValue)value;

/**
 *  获取数值对应的字符串
 *
 *  @param value 枚举值
 *
 *  @return 字符串
 */
+ (NSString *)stringValueWithEStringAndValue:(EStringAndValue)value;

@end


//
//  StringAndValue.m
//  StringAndValue
//
//  Created by YouXianMing on 15/6/9.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "StringAndValue.h"

static NSDictionary *_dataStringAndValue = nil;

@implementation StringAndValue

+ (void)initialize {
    
    if (self == [StringAndValue class]) {
        
        _dataStringAndValue = @{@(EUserSucess) : @"成功",
                                @(EUserError)  : @"失败",};
    }
}

+ (EStringAndValue)numberValueWithEStringAndValue:(EStringAndValue)value {

    return value;
}

+ (NSString *)stringValueWithEStringAndValue:(EStringAndValue)value {
    
    return _dataStringAndValue[@(value)];
}

@end


//
//  ViewController.m
//  StringAndValue
//
//  Created by YouXianMing on 15/6/9.
//  Copyright (c) 2015年 YouXianMing. All rights reserved.
//

#import "ViewController.h"
#import "StringAndValue.h"

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    NSLog(@"%@", E_STRING(EUserError));
    NSLog(@"%lu", (unsigned long)EUserError);
}

@end

重要的地方


目录
相关文章
|
5月前
|
Dart
Dart之常用数据类型(字符串、数值、布尔、集合、映射)
Dart之常用数据类型(字符串、数值、布尔、集合、映射)
|
6月前
浮点变量值为1.000000和1.0常量比较相等吗?
浮点变量值为1.000000和1.0常量比较相等吗?
40 0
|
6月前
将整数转换为枚举
将整数转换为枚举。
39 2
对象的属性和值转换
对象的属性和值转换
39 0
|
存储 索引
数组与字符串的关系【了解一下】
数组与字符串的关系【了解一下】
125 0
比较任意类型是否相等!
比较任意类型是否相等!
80 0
C中取得数组的地址,赋值给数组结构的字段
C中取得数组的地址,赋值给数组结构的字段
83 0
类型和值
类型和值
73 0
|
JavaScript 前端开发
判断数据类型
判断数据类型的偏方很多,但是很多就不是那么的特别准确,比如 typeof  没法判断是 Object 还是Array。 通用方法就是查找该数据类型的原型。 首先我们宏观的知道下,在 JavaScript 中所有的类型如果没有指明继承某个类型,则默认是继承的 Object 类型。
875 0
下一篇
无影云桌面